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.

  • 相关阅读:
    第 15 章 标签页和工具提示插件
    第 14 章 下拉菜单和滚动监听插件
    第 13 章 模态框插件
    第 12 章 列表组面板和嵌入组件
    第 11 章 进度条媒体对象和 Well 组件
    第 10 章 巨幕页头缩略图和警告框组件
    第 9 章 路径分页标签和徽章组件
    lock()与lockInterruptibly()的区别
    MySQL中Innodb的聚簇索引和非聚簇索引
    MySQL使用可重复读作为默认隔离级别的原因
  • 原文地址:https://www.cnblogs.com/ghgyj/p/4766276.html
Copyright © 2011-2022 走看看