Struts2 学习笔记(二)

本贴最后更新于 2640 天前,其中的信息可能已经时过境迁

Struts2 学习笔记

    Struts2 结果页面的配置

    1. 全局结果页面

	<global-results>
	  <result name="success">/hello.jsp</result>
	</global-results>

    2. 局部结果页面

	<action name="hello" class="action.HelloAction">
	  <!-- 配置返回值到页面 -->
	  <result name="ok">/hello.jsp</result>
	</action>	

    3. result 标签的 type 属性
      (1) 默认为转发值是 dispatcher
      (2) 重定向值是 redirect
      (3) chain : 转发到 action,一般不用
      (4) redirectAction: 重定向到 action

    Action 获取表单提交数据

    1. 使用 ActionContext 类

	ActionContext context = ActionContext.getContext();
	//key是表单输入项name的值,value是输入的值
	Map<String, Object> map = context.getParameters();

    2. 使用 ServletActionContext 类

	 HttpServletRequest request = ServletActionContext.getRequest();
	 String name = request.getParameter("name");
	 String pass = request.getParameter("pass");

    3. 使用接口注入

   public class HelloAction extends ActionSupport implements ServletRequestAware{
	  private HttpServletRequest request;
	  public void setServletRequest(HttpServletRequest request) {
		  // TODO Auto-generated method stub
		  this.request = request;
	  }
	  public String execute(){
		  String name = request.getParameter("name");
		  String pass = request.getParameter("pass");
		  return NONE;
	  }	
  }

    实体类的封装

    1. 属性封装,在 action 加入字段,变量名称与表单里面的 name 属性一致,生成 set,get 方法

	public class HelloAction extends ActionSupport{
	  private String name;
	  private String pass;
	  public String getName() {
		  return name;
	  }
	  public void setName(String name) {
		  this.name = name;
	  }
	  public String getPass() {
		  return pass;
	  }
	  public void setPass(String pass) {
		  this.pass = pass;
	  }
	  public String execute(){
		  System.out.println(name+" :"+pass);
		  return NONE;
	  }	

    2. 模型驱动封装

	public class HelloAction extends ActionSupport implements ModelDriven<User>{
	  //创建对象
	  //前提要求:表单输入项name属性值和实体类属性名称一样
	  private User user = new User();
	  public User getModel() {
		  // TODO Auto-generated method stub
		  return user;
	  }
	  public String execute(){
		  System.out.println(user);
		  return NONE;
	  }	
  }

    3. 表达式封装

	//在action中声明对象
	private User user;
	public User getUser() {
		return user;
	}
	public void setUser(User user) {
		this.user = user;
	}
	public String execute(){
		System.out.println(user);
		return NONE;
	}
  <form action="${pageContext.request.contextPath }/userAction.action" method="post">
	<input type="text" name="user.username" /> 
	<input type="text" name="user.pass" />
  </form>
  • Struts2
    13 引用 • 14 回帖 • 1 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3168 引用 • 8207 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...