struts结果处理 获得servletAPI 参数获得方式
一:结果处理
1.导包
2.配置struts文件
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<package name="test01" namespace="/" extends="struts-default"> <action name="ResultMessage" class="cn.itcast.dispatcher.ResultMessage" method ="execute"> <result name="success" type="dispatcher">/dispatcher.jsp</result> </action> </package>
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<package name="test02" namespace="/" extends="struts-default"> <action name="RedirectMessage" class="cn.itcast.redirect.RedirectMessage" method ="execute"> <result name="success" type="redirect">/redirect.jsp</result> </action> </package>
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<package name="test03" namespace="/" extends="struts-default"> <action name="RedirectAction" class="cn.itcast.redirecttoAction.RedirectAction" method ="execute"> <result name="success" type="redirectAction"> <param name="actionName">RedirectMessage</param> <param name="namespace">/</param> </result> </action> </package>
3.配置web.xml 中核心过滤器
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<!-- struts2核心过滤器 --> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
4.书写action类
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
public class ResultMessage extends ActionSupport{ @Override public String execute() throws Exception { // TODO Auto-generated method stub System.out.println("转发"); return SUCCESS; } }
二:获得servlet API
1.导包
2.配置struts文件
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <package name="test04" namespace="/" extends="struts-default"> <action name="AccessServletAction" class="cn.itservletapi.test.AccessServletAction" method ="execute"> <result name="success">/api.jsp</result> </action> </package> </struts>
3.书写action类
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
package cn.itservletapi.test; import java.util.Map; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; /** * @author 作者 * @version 创建时间:2018年7月24日 下午3:22:10 类说明:访问servlet中的API * 1.获取三大作用域对象及页面参数 * 2.是struts标签的上下文对象 * 3.ThreadLocal内装的就是ActionContext` */ public class AccessServletAction extends ActionSupport { @Override public String execute() throws Exception { // request域=>map //例如给request域放值 Map<String, Object> request = (Map<String, Object>) ActionContext.getContext().get("request");; request.put("name", "requestTom");; // session域=>map Map<String, Object> session = ActionContext.getContext().getSession(); session.put("name", "sessionTom"); // application域=>map Map<String, Object> application = ActionContext.getContext().getApplication(); application.put("name", "applicationTom"); return SUCCESS; } }
4.书写api.jsp
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> request:${request.name}<br> session:${session.name}<br> application:${application.name}<br> </body> </html>
三:接受参数
1.导包
2.书写stuts配置文件
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <package name="test05" namespace="/" extends="struts-default"> <action name="ParamMessage" class="cn.itming.param.ParamMessage" method ="execute"> <result name="success">/form.jsp</result> </action> </package> </struts>
3.书写实体类
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
package cn.itming.domain; /** * @author 作者 * @version 创建时间:2018年7月23日 下午6:13:15 * 类说明: */ public class User { private String name; private Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "User [name=" + name + ", age=" + age + "]"; } }
4.书写action类
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
package cn.itming.param; import com.opensymphony.xwork2.ActionSupport; import cn.itming.domain.User; /** * @author 作者 * @version 创建时间:2018年7月23日 下午6:12:32 * 类说明:获取参数的方式 */ public class ParamMessage extends ActionSupport{ private User user; public User getUser() { return user; } public void setUser(User user) { this.user = user; } @Override public String execute() throws Exception { // TODO Auto-generated method stub System.out.println(user); return super.execute(); } }
5.书写form.jsp文件
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <form action="${pageContext.request.contextPath}/ParamMessage}" method="post"> 用户名:<input type="text" name="user.name"/> 年龄:<input type ="text" name="user.age"/> <input type="submit" value="提交"/> </form> </body> </html>