Struts项目
下载struts2的文件作为参考
1.导入lib目录下的jar包到WEB-INF
2.拷贝struts.xml到项目src下 及相关配置
解决办法
错误一:struts放错了位置,放在了WEB-INF下面,应该放在src下
错误二:LoginAction写错了包名
错误三:将多余的jar包删除
配置
1.struts.xml提示不显示,在Preferences下搜索xml,选择Xml Catalog
Struts2知识点
3.通配符
第1种最直接的,指定method
<a href="<%=path%>/userAction.action">添加</a>
<action name="userAction" class="com.jike.struts.action.UserAction" method="add">
<result name="success">index.jsp</result>
</action>
第2种使用通配符实现在新版本中需要在result后添加 allowed-method标签
<a href="<%=path%>/UserAction_add.action">添加</a>
<action name="*_*" class="com.jike.struts.action.{1}"
method="{2}">
<result name="success">index.jsp</result>
<allowed-methods>add,show,update,delete</allowed-methods>
<a href="<%=path%>/userAction!add.action">添加</a>
<!-- 是否开启动态方法调用 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<action name="userAction" class="com.jike.struts.action.UserAction"
method="*">
<result name="success">index.jsp</result>
4.拦截器
下载struts2的文件作为参考
1.导入lib目录下的jar包到WEB-INF
2.拷贝struts.xml到项目src下 及相关配置
3.在web.xml文件中加入过滤器代码
解决办法
错误一:struts放错了位置,放在了WEB-INF下面,应该放在src下
错误二:LoginAction写错了包名
错误三:将多余的jar包删除
配置
1.struts.xml提示不显示,在Preferences下搜索xml,选择Xml Catalog
Struts2知识点
1.执行流程 多实例多线程
因为多实例,每次请求,会产生不同的Action和ActionContext对象,因此线程是安全的,同时因为Action是多实例的,所以Action中可以定义成员变量,因为多实例不会公用。
2.OGNL标签3.通配符
第1种最直接的,指定method
<a href="<%=path%>/userAction.action">添加</a>
<action name="userAction" class="com.jike.struts.action.UserAction" method="add">
<result name="success">index.jsp</result>
</action>
第2种使用通配符实现在新版本中需要在result后添加 allowed-method标签
<a href="<%=path%>/UserAction_add.action">添加</a>
<action name="*_*" class="com.jike.struts.action.{1}"
method="{2}">
<result name="success">index.jsp</result>
<allowed-methods>add,show,update,delete</allowed-methods>
</action>
第3种动态访问<a href="<%=path%>/userAction!add.action">添加</a>
<!-- 是否开启动态方法调用 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<action name="userAction" class="com.jike.struts.action.UserAction"
method="*">
<result name="success">index.jsp</result>
</action>
因为 struts2.5 为了提升安全性,添加了 allomethod,会报错
Method add for action UserAction is not allowed!解决办法,
1.在配置package下添加(支持正则和直接匹配方法)
<global-allowed-methods>regex:.*</global-allowed-methods>
2.在action块中添加
<allowed-methods>regex:.*</allowed-methods>
4.拦截器