- Struts2默认配置
<struts>
<!-- struts标签中有个属性是 namespace 默认值是"/" -->
<package package="" enxtends="struts-default" namespace="">
<!-- action 标签中有个属性是 class默认值是ActionSupport
method中{1} 是代表第一个*号的意思 可以多个*
-->
<action name="Action_*" class="" method="{1}">
<!-- result 标签中有个属性是 name 默认值是"success"
tpye默认值是:dispatcher 转发
-->
<result name="" type=""></result>
</action>
</package>
</struts>
- struts2结果定义
<action name="Action_*" class="" method="{1}">
<!-- 转发 -->
<result type="dispatcher">/index.jsp</result>
</action>
<action name="Action_*" class="" method="{1}">
<!-- 重定向 -->
<result type="redirect">/index.jsp</result>
</action>
<!-- 完整写法-->
<action name="Action_*" class="" method="{1}">
<!-- 重定向到Action完整写法 -->
<result type="redirect">
<!-- namespace:命名空间 -->
<param name="namespace"></param>
<!-- name:Action名称 -->
<param name="actionName">Action_findAll</param>
</result>
</action>
<!-- 简单写法 -->
<action name="Action_*" class="" method="{1}">
<!-- 重定向到ActionAction简单写法 -->
<!-- 如果重定向的Action和当前Action在同一个目录下面可以省略不写namespce -->
<result type="redirect">/index.jsp</result>
</action>
<!-- 全局结果定义 -->
<global-result>
<!-- 在全局结果定义中配上result就相当于在每个Action中配上了result -->
<!-- 如果在同一个命名空间下可以省略不写namespace -->
<result type="redirectAction">/index.jsp</result>
</global-result>
3.ServletAPI获得
在struts2中如何获取例如request|session|response|servletContext
//方式1:获得解耦API
public String execute() throws Exception {
//获得解耦API
//1.获得application域 Map
Map<String, Object> application = ActionContext.getContext().getApplication();
//2.获得request域 Map
Map<String, Object> request = (Map<String, Object>) ActionContext.getContext().get("request");
//3.获得session域 Map
Map<String, Object> session = ActionContext.getContext().getSession();
//向API添加键值对
application.put("name", "application.....");
request.put("name", "request.....");
session.put("name", "session.....");
return SUCCESS;
}
//获得原生servletAPI
@Override
public String execute() throws Exception {
//获得元素ServletAPI
//1.获得application域 Map
ServletContext application = ServletActionContext.getServletContext();
//2.获得request域 Map
HttpServletRequest request = ServletActionContext.getRequest();
//3.获得session域 Map
HttpSession session = request.getSession();
//向API添加键值对
application.setAttribute("name", "application.....");
request.setAttribute("name", "request.....");
session.setAttribute("name", "session.....");
return SUCCESS;
}
注意事项
1.在页面接受的时候 不管你后台用的什么变量名字接受的时候统一用如下来接受
<body>
request:${requestScope.name }<br/>
application:${applicationScope.name }<br/>
session:${sessionScope.name }<br/>
</body>
2.解耦获得是Map 赋值要使用put(K,V);赋值
元素获得是对象 要使用setAttributr(K,V);赋值