学习框架过程中,一直对框架中的配置文件比较难理解,特搜集资料简要记录一下struts.xml文件遇到的问题。
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 4 "http://struts.apache.org/dtds/struts-2.0.dtd"> 5 6 <struts> 7 <package name="basicstruts" extends="struts-default"> 8 9 <action name="showProduct" class="com.how2java.action.ProductAction" method="show"> 10 <result name="show">show.jsp</result> 11 </action> 12 <action name="addProduct" class="com.how2java.action.ProductAction" method="list"> 13 <result name="list">list.jsp</result> 14 </action> 15 16 </package> 17 18 </struts>
1.包(package)用于管理Action,一个包中可以有多个Action。
name属性:包名,一个项目中不能有同名的包。
extends属性:开发必须继承struts-default包。
method属性:对应action类中的具体方法。
2. Action
2.1 action配置
name:action名称,用来访问action路径
class:类名
2.2 result配置
name:每个action方法都要返回一个String类型的值,这个值必须与这个name相对应。
type:跳转类型
默认为dispatcher(转发),将跳转到result文本节点中指定的地址。
转发又称服务器跳转,一次请求,一次响应,客户端向服务器端请求当前资源,这个资源将在服务器端内跳转到另一资源,由另一资源发回响应。
还有一种为redirect(重定向),可以来重定向到Action。
重定向又称为客户端跳转,两次请求,两次响应,客户端向服务器端请求当前资源,服务器端响应回来一个其他地址,由客户端再一次根据发回来的地址来请求, 由对应地址在最终发回来响应。
3. Struts通配符
传统方法中,例如上述代码中的list,show之类的方法,需要分别配置,这样的话需要耗费大量的配置时间,所以引入通配符来解决这一问题。
<action name="*Product" class="com.how2java.action.ProductAction" method="{1}"> <result name="show">show.jsp</result> <result name="list">list.jsp</result> </action>
*Product 表示所有以Product结尾的路径,都会匹配在这个Action上
method={1}表示第一个通配符
如果访问的是addProduct就会调用add方法
如果访问的是listProduct就会调用list方法
以此类推
初学者,如有错误还请指正!