`
peonyzzdx
  • 浏览: 590696 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

Action的传值方式

    博客分类:
  • J2EE
阅读更多
1.字段驱动方式
所谓字段驱动方式就是通过字段进行数据传递。在Struts2中我们可以直接在Action里定义各种Java基本类型的字段,使这些字段与表单数据相对应,并利用这些字段进行数据传递。

UserAction.java

public class UserAction {
  private  String name;
  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() throws Exception {
       ……  
  }
}
这个Action中的定义了两个字符串字段"username”和"password”,这两个字段分别对应登陆页面上的“用户名”和“密码”两个表单域。



2、模型驱动方式
所谓模型驱动方式是指通过JavaBean模型进行数据传递。采用这种方式,JavaBean所封装的属性与表单的属性一一对应,JavaBean将成为数据传递的载体。使用模型驱动方式,Action类通过get*()的方法来获取模型,其中“*”代表具体的模型对象。
首先,我们创建一个模型:

user.java
 
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类型的域模型:

UserAction.java
import xxxx.User;
  public class User2Action { 
    private User user;      
    public User getUser() {      
       return user;     }     
     public void setUser(User user){ 
       this.user = user;     }  
     public String execute() throws Exception{
      if(user.getUsername().equals("wwfy")
          &&user.getPassword().equals("123456")){  
          return "success";       
          }       
           else{         
          return "error";     
   }  
  }
}


在使用模型驱动传值的时候需要注意,如果JSP页面是负责取值的,那么取值的格式必须为“模型对象名.属性名”;如果JSP页面是负责传值的,那么传值的格式可以为“模型对象名.属性名”,也可以直接是“属性名”。

接下来对登陆页和成功页进行改动:

login2.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> 
<head><title>登陆页面</title></head> 
<body>
<center> <s:form action="loginUser2"><s:textfield name="user.username" label="用户名"></s:textfield>                 <s:password name="user.password" label="密码"></s:password>
<s:submit value="确定"/>
<s:reset value="重置"/>
</s:form>
</center> 
</body>
</html>


struts.xml

<action name="loginUser2" class="wwfy.action.user.User2Action">     <result name="success">/jsp/success2.jsp</result>     <result name="error">/jsp/error.jsp</result> </action>

这样就完成了模型驱动传值.

0
1
分享到:
评论

相关推荐

    Struts2的三种传值方式比较(附demo)

    总结来说,Struts2的传值方式包括Action属性、ValueStack和Ognl以及ActionContext与请求/Session域的使用。选择合适的方式取决于业务需求和代码的可维护性。了解并熟练掌握这些方法,对于提高Struts2应用的开发效率...

    几种JSP页面传值方式.txt

    ### 几种JSP页面传值方式详解 在Java Web开发中,JSP(Java Server Pages)是一种常用的技术,用于创建动态网页。JSP页面之间的数据传递是实现前后端交互的关键环节之一。本文将详细介绍几种常见的JSP页面传值方式...

    ASP.NET的几种传值方式

    以下将详细阐述标题和描述中提到的几种ASP.NET页面传值方式: 1. **表单提交**: 表单提交是最基础的传值方式,通过HTML `&lt;form&gt;` 标签实现。通常,表单提交默认会向自身页面提交,但如果需要提交到其他页面,需要...

    struts2-传值方式

    ### Struts2 传值方式详解 在Struts2框架中,实现前后台的数据传递是构建Web应用的基础之一。本文将详细介绍三种常见的Struts2数据传递方式:通过默认的Action属性传递、使用Value Object(VO)传递以及利用...

    winform 委托窗体传值.zip

    在这个"winform 委托窗体传值.zip"项目中,我们关注的是如何在WinForm窗体之间传递数据,特别是通过使用`Action`委托。`Action`是C#中预定义的一种多参数无返回值的委托类型,它可以用来封装方法,使其可以在其他...

    JavaScript实现在页面间传值的方法

    还提到了在跳转时可以使用不同的方案,如通过修改表单的action属性或者直接使用window.location.href。但是这两种方案在本文档中被标注为无效,而使用window.location.replace(str)则被标明为有效方法。 文中还提到...

    主窗体给两个父窗体传值,子窗体和子窗体间传值,Action搞定,比较简单的demo

    本文将详细讲解如何通过Action实现主窗体与子窗体以及子窗体之间的值传递。 首先,让我们理解“Action”在.NET中的含义。Action是System.Action委托类型,它代表一个不返回任何值的方法。我们可以使用Action来传递...

    acton之间传值

    本文将详细介绍Struts2中几种常见的Action间传值方式,特别是`chain`和`redirectAction`两种方式的使用场景及限制。 #### 1. 使用`chain`进行Action间传值 `chain`结果类型允许将当前Action的结果转发到另一个...

    url传值到Action乱码解决方案

    乱码问题的原因是因为URL传值时,浏览器和服务器之间的编码方式不同所致。在大多数情况下,浏览器使用UTF-8编码,而服务器端使用ISO-8859-1编码。当我们传递中文参数时,如果不进行特殊处理,服务器端会将中文字符...

    Vue 组件间传值及事件触发Demo

    1. `props` 下传:父组件向子组件传递数据是最常见的传值方式,通过在子组件定义`props`属性接收父组件传递的值。例如: ```html &lt;!-- 父组件 --&gt; &lt;child-component :parent-value="valueFromParent"&gt;&lt;/child-...

    关于JSP页面间的传值

    这是最简单也是最直接的一种传值方式,主要通过在链接中添加查询参数来实现。例如: ``` &lt;a href="page.jsp?Id=&lt;%=goodsId%&gt;"&gt;hellow ``` 这里的`&lt;%=goodsId%&gt;`会被服务器端解析为具体的商品ID值,并将其作为URL...

    Jquery Ajax方法传值到action的方法

    下面我们将深入探讨如何使用jQuery AJAX方法将数据传值到ASP.NET MVC的Action。 首先,jQuery的`$.ajax()`函数是实现这一目标的核心。在提供的示例中,`$.ajax()`方法被用于创建一个POST请求。下面是其主要配置: ...

    Struts2常用标签的使用以及Action传值

    Struts2表单标签的应用实例。 主要功能是在一个页面提交个人信息之后跳转到另一个页面显示之前所提交的个人信息。具体介绍和功能演示请移步我的博客: http://blog.csdn.net/qq_33171970/article/details/51380991

    asp.net页面间的传值汇总

    本文将对几种常见的ASP.NET页面间传值方式进行深入解析,包括GET、POST、页面对象属性及Cookie,旨在帮助开发者更好地理解和运用这些技术。 #### 一、GET方式(使用QueryString显式传递) **方式描述**:GET方式...

    struts2传值

    本文将深入探讨Struts2中两种不同的传值方式,并结合实例解析如何在JSP页面中使用Struts2标签进行数据访问。 首先,传值问题在Struts2中主要涉及到Action类和JSP页面之间的交互。在Action类中,有两种方式可以将值...

    JSP和Serverlet之间的传值方法

    通过对JSP与Servlet之间传值方法的详细介绍,我们了解到在实际开发中,可以根据不同的需求选择合适的传值方式。通过request、session、表单提交以及URL重写等方式,可以灵活地在JSP与Servlet之间传递各种类型的数据...

    asp.net 页面之间传值方法总结.

    ### ASP.NET 页面之间传值方法总结 在ASP.NET开发中,页面...开发者应根据具体需求选择最合适的传值方式,以确保数据的安全性和应用的性能。在实际开发中,结合多种方法使用,往往能更好地满足复杂的应用场景需求。

    反向传值(协议代理)

    2. **模态弹窗的关闭**:当模态展示的子控制器需要告知父控制器用户已经完成某项操作,例如选择了照片或输入了文字,可以采用反向传值的方式通知父控制器关闭模态视图。 3. **自定义控件的交互**:自定义控件也可以...

    动态增删table以及后台传值和弹出窗口父子窗口传值

    在IT行业中,动态增删table和后台传值是前端与后端交互的重要技术,而弹出窗口父子窗口之间的数据传递则是提升用户体验的关键。下面将详细解释这些知识点。 首先,动态增删table是一种常见的用户界面设计,它允许...

    JSP.rar_Action!_jsp传值

    在Java Web开发中,JSP(JavaServer Pages)和Action(通常指的是Struts2框架中的Action类)是常见的两个组件,用于实现动态网页和业务逻辑处理。本教程将重点讲解如何在JSP页面中向Action传递值,并解决可能出现的...

Global site tag (gtag.js) - Google Analytics