zoukankan      html  css  js  c++  java
  • Struts – Wildcards example

    Struts wildcards can helps to reduce the repetition in your struts-config.xml file, as long as your Struts project is following some regular file structure. For example, in User module, to implement the CRUD function, your struts-config.xml may look like following

    1. No Wildcards

    You need to create four action mappings for each list, add, delete and update function, and a lot of repetition.

    struts-config.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC 
    "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" 
    "http://jakarta.apache.org/struts/dtds/struts-config_1_3.dtd">
     
    <struts-config>
    	
    	<action-mappings>
    
    	 	<action
    			path="/ListUserAction"
    			type="com.mkyong.common.action.UserAction"
    			parameter="ListUser"
    			>
     
    			<forward name="success" path="/pages/ListUser.jsp"/>
     
    		</action>
    		
    		<action
    			path="/AddUserAction"
    			type="com.mkyong.common.action.UserAction"
    			parameter="AddUser"
    			>
     
    			<forward name="success" path="/pages/AddUser.jsp"/>
     
    		</action>
    		
    		<action
    			path="/EditUserAction"
    			type="com.mkyong.common.action.UserAction"
    			parameter="EditUser"
    			>
     
    			<forward name="success" path="/pages/EditUser.jsp"/>
     
    		</action>
    		
    		<action
    			path="/DeleteUserAction"
    			type="com.mkyong.common.action.UserAction"
    			parameter="DeleteUser"
    			>
     
    			<forward name="success" path="/pages/DeleteUser.jsp"/>
     
    		</action>
    		
    		
    	</action-mappings>
    	
    </struts-config>
    

    2. With Wildcards

    With Struts wildcards feature, your struts-config.xml can cut down into one action mapping.

    struts-config.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC 
    "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" 
    "http://jakarta.apache.org/struts/dtds/struts-config_1_3.dtd">
     
    <struts-config>
    	
    	<action-mappings>
    
    	 	<action
    			path="/*UserAction"
    			type="com.mkyong.common.action.UserAction"
    			parameter="{1}User"
    			>
     
    			<forward name="success" path="/pages/{1}User.jsp"/>
     
    		</action>
    
    	</action-mappings>
    	
    </struts-config>
    

    Let’s see an use case, try access via http://localhost:8080/StrutsExample/EditUserAction.do. The “EditUserAction.do” will match the “/*UserAction” pattern, and the * matched string “Edit” is represent by {1} for later use.

    In above case, the wildcards action mapping will change from

           <action
    		path="/*UserAction"
    		type="com.mkyong.common.action.UserAction"
    		parameter="{1}User"
    	>
     
    	<forward name="success" path="/pages/{1}User.jsp"/>
     
    	</action>
    

    to

           <action
    		path="/EditUserAction"
    		type="com.mkyong.common.action.UserAction"
    		parameter="EditUser"
    	>
     
    	<forward name="success" path="/pages/EditUser.jsp"/>
     
    	</action>
    

    Conclusion

    Both struts-config.xml samples have the same functionality, but with less repetition in wildcards support. However, DO NOT overuse this wildcards feature in your project, it’s less manageable than the normal declaration.

  • 相关阅读:
    二级指针也引用
    可视化 linux 无法启动eclipse 报错No java virtual machine
    java报错java/lang/NoClassDefFoundError: java/lang/Object
    hadoop多次搭建后,完整总结(累死宝宝了,搭建了十多遍了)
    hadoop显示ConnectionrRefused
    hadoop搭建初步总结
    VMware 12 的vmware tools安装和如何使用(系统是CENTOS6.5)
    LInux配置jdk(mac和windows)
    LInux javac时, 提示command not found
    myeclipse如何修改Web项目名称,eclipse如何修改项目名字
  • 原文地址:https://www.cnblogs.com/ghgyj/p/4766276.html
Copyright © 2011-2022 走看看