`
CoderDream
  • 浏览: 470575 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

【张冰Struts2学习笔记】0202_Struts2的三种接收用户输入的方法

阅读更多

Struts2的三种接收用户输入的方法

 

1.      利用 action 类的属性接收用户输入

这种方式最简单,在action 中创建需要的属性,然后添加gettersetter 方法:

代码清单1 Login1Action.java

 

package com.coderdream.action;
 
public class Login1Action {
      private String username ;
      private String password ;
 
      public String getUsername() {
           return username ;
      }
 
      public void setUsername(String username) {
           this .username = username;
      }
 
      public String getPassword() {
           return password ;
      }
 
      public void setPassword(String password) {
           this .password = password;
      }
 
      public String execute() {
           if ("aaa" .equalsIgnoreCase(username .trim())
                      && "123" .equalsIgnoreCase(password .trim())) {
                 return "success" ;
           } else {
                 return "failure" ;
           }
      }
 
} 
 

 

jsp 中调用(输入):

代码清单 2 login.jsp 片段

 

1 、利用 action 类的属性接收用户输入:
< br />
< form action =" <%= path%> /login1.action" method ="POST" >
      姓名:
      < input type ="text" name ="username " >
      < br />
      密码:
      < input type ="text" name ="password " >
      < br />
      < input type ="submit" name =" 登录 " >
      < br />
</ form >  

jsp 中调用(输出):

代码清单 3 login1Suc.jsp 片段

欢迎 < s:property value ="username " /> ,登录成功! 

 

 

2.      利用领域对象( VO )接收用户输入

先创建VO 对象,在对象中创建需要的属性,然后添加gettersetter 方法:

代码清单 4 User.java

 

package com.coderdream.vo;
 
public class User {
      private String username ;
      private String password ;
 
      public String getUsername() {
           return username ;
      }
 
      public void setUsername(String username) {
           this .username = username;
      }
 
      public String getPassword() {
           return password ;
      }
 
      public void setPassword(String password) {
           this .password = password;
      }
} 
 

 

action 中创建User 对象,并添加该对象的gettersetter 方法:

代码清单 5 Login2Action.java

 

package com.coderdream.action;
import com.coderdream.vo.User;
import com.opensymphony.xwork2.Action;
public class Login2Action implements Action {
      private User user ;
      public User getUser() {
           return user ;
      }
      public void setUser(User user) {
           this .user = user;
      }
      public String execute() {
           if ("aaa" .equalsIgnoreCase(user .getUsername().trim())
                      && "123" .equalsIgnoreCase(user .getPassword().trim())) {
                 return SUCCESS ;
           } else {
                 return INPUT ;
           }
      }
} 

 

 

jsp 中调用,需要使用user 对象名(输入):

代码清单 6 login.jsp 片段

 

2 、利用领域对象( VO )接收用户输入:
< br />
< form action =" <%= path%> /login2.action" method ="POST" >
      姓名:
      < input type ="text" name ="user.username " >
      < br />
      密码:
      < input type ="text" name ="user.password " >
      < br />
      < input type ="submit" name =" 登录 " >
      < br />
</ form > 
 

jsp 中调用,需要使用user 对象名(输出):

代码清单 7 login1Suc.jsp 片段

欢迎 < s:property value ="user.username " /> ,登录成功! 
 

3.      使用 ModelDriven 模式接收用户输入

使用这种方式时,需要实现下面的接口:

 

com.opensymphony.xwork2

Interface ModelDriven <T>

public interface ModelDriven<T>ModelDriven Actions provide a model object to be pushed onto the ValueStack in addition to the Action itself, allowing a FormBean type approach like Struts. 
 

然后在action 中创建需要的模型,最后实现getModel() 方法:

代码清单 8 Login3Action.java

 

package com.coderdream.action;
 
import com.coderdream.vo.User;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
 
public class Login3Action extends ActionSupport implements ModelDriven<User> {
 
      private User user = new User();
 
      public User getModel() {
           return user ;
      }
 
      public String execute() {
           if ("aaa" .equalsIgnoreCase(user .getUsername().trim())
                      && "123" .equalsIgnoreCase(user .getPassword().trim())) {
                 return SUCCESS ;
           } else {
                 return INPUT ;
           }
      }
 
} 

 

jsp 中调用,不需要使用User 对象,直接通过属性名获取(输入):

代码清单 9 login.jsp 片段

 

3 、使用 ModelDriven 模式接收用户输入:
< br />
< form action =" <%= path%> /login3.action" method ="POST" >
      姓名:
      < input type ="text" name ="username " >
      < br />
      密码:
      < input type ="text" name ="password " >
      < br />
      < input type ="submit" name =" 登录 " >
      < br />
</ form > 
 

jsp 中调用,不需要使用User 对象,直接通过属性名获取(输出):

代码清单 10 login1Suc.jsp 片段

欢迎 < s:property value ="username " /> ,登录成功! 

 

4.      三种方式小结

    Java代码 jsp代码 备注
1 利用action类的属性接收用户输入 通过属性的getter/setter方法设置和使用属性 输入与输出:属性名
<input type="text" name="username
">
<s:property value="
username " />
属性很多时,action中的代码会非常多
2 利用领域对象(VO)接收用户输入 通过对象的getter/setter方法设置和使用对象 输入与输出:对象.属性名
<input type="text" name="user.username
">
<s:property value="
user.username " />
 
3 使用ModelDriven模式接收用户输入 在创建属性对象时就创建对象,然后通过getModel()方法使用对象 输入与输出:属性名
<input type="text" name="username
">
<s:property value="
username " />
在Java和jsp代码调用很方便,不需要对象名

5.      源代码

附件。

 

我的联系方式: 85337464

我的博客: http://coderdream.iteye.com

 

1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics