zoukankan      html  css  js  c++  java
  • 2.vo传参模式和ModerDriven传参模式

    转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html

    Copy上面的myStruts2项目,改名为myStruts2Vo项目。作如下修改:在LoginAction中有两个字段:username,password。把此两个属性重构到com.asm.vo.User类中,然后在LoginAction中提供User对象及相应的get/set方法。现在需要注意的是在login.jsp中会有如下的修改:

    户名:<input type="text" name="user.username"><br>

    密码:<input type="password" name="user.password"><br>

    关键就是改掉name属性值。其它基本无变动。 后话:假如此此User对象并不能和Model层的相应对象完全对应,我们还应借助此User对象在Action中构建出Model层的相应对象,这样,在exectue方法中便能通过构建的Model对象作为参数与Model层交互。

     1 package com.asm;
     2 
     3 import com.asm.vo.User;
     4 import com.opensymphony.xwork2.Action;
     5 
     6 public class LoginAction implements Action{
     7 
     8     private User user = new User();
     9     
    10     public User getUser() {
    11         return user;
    12     }
    13 
    14     public void setUser(User user) {
    15         this.user = user;
    16     }
    17 
    18     @Override
    19     public String execute() throws Exception {
    20         if("struts2".equals(user.getUsername())){
    21             return "loginSuccess";
    22         }else{
    23             return "loginFailure";
    24         }
    25     }
    26 
    27     
    28 }
     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     7 <title>Insert title here</title>
     8 </head>
     9 <body>
    10     <form action="<%=request.getContextPath()%>/login.action" method="get">
    11         用户名:<input type="text" name="user.username"><br/>
    12         密码:<input type="password" name="user.password"><br/>
    13         <input type="submit" value="login">
    14     </form>
    15 </body>
    16 </html>

    Copy上面的myStruts2Vo项目,改名为myStruts2Model项目。重点是修改LoginAction,修改后的主要内容如下:

     1 package com.asm;
     2 
     3 import com.asm.vo.User;
     4 import com.opensymphony.xwork2.Action;
     5 import com.opensymphony.xwork2.ModelDriven;
     6 
     7 public class LoginAction implements Action,ModelDriven<User>{
     8 
     9     private User user = new User();
    10 
    11     @Override
    12     public String execute() throws Exception {
    13         if("struts2".equals(user.getUsername())){
    14             return "loginSuccess";
    15         }else{
    16             return "loginFailure";
    17         }
    18     }
    19 
    20     @Override
    21     public User getModel() {
    22         return user;
    23     }
    24 
    25     
    26 }
     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     7 <title>Insert title here</title>
     8 </head>
     9 <body>
    10     <form action="<%=request.getContextPath()%>/login.action" method="get">
    11         用户名:<input type="text" name="username"><br/>
    12         密码:<input type="password" name="password"><br/>
    13         <input type="submit" value="login">
    14     </form>
    15 </body>
    16 </html>

    说明:它实现了ModelDriven接口,并使用了泛性机制(必须),因此要求jdk1.5以上。
    现在需要注意的是在login.jsp中name属性值为User中两个字段,和第一个实例一样。说明:此方式一般不会使用,在此略作了解。

  • 相关阅读:
    C/C++ assert() 函数用法
    C/C++ 字符编码的转换(ut8、gb2312)
    C++多字节与宽字节间的转换(wchar_t与char转换)
    C语言中的多字节字符与宽字符
    表表达式
    OEE
    机器表现性
    出勤时间
    设备直接利用率
    SQL execution time
  • 原文地址:https://www.cnblogs.com/sharpest/p/5579969.html
Copyright © 2011-2022 走看看