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.

  • 相关阅读:
    The type new View.OnClickListener(){} must implement the inherited abstract method View.Onclicklis
    vue开发环境跨域
    浅析deep深度选择器
    模块化
    highlight-current-row无效的解决方法
    element-ui的table 在页面缩放时,出现的问题
    css变量
    节流和防抖
    promise详解
    正则表达式详解
  • 原文地址:https://www.cnblogs.com/ghgyj/p/4766276.html
Copyright © 2011-2022 走看看