`

struts2 的3种驱动 第三种方式 模型驱动

阅读更多
第三种是:将对象写在action中 action实现一个ModelDriven<User> :
在action中  我只写了一个user 对象 : 

    action 中的内容:




package com.luhua.test;

import com.luhua.pojo.User;
import com.opensymphony.xwork2.ModelDriven;


public class UserAction implements ModelDriven<User>{

//用户
private User user = new User();

public String user(){
System.out.println(user.getUsername());
return "success" ;

}


public String execute(){

return "success" ;

}



public User getModel() {
return user;
}

}




user类中:只有一个username的属性,并提供了get和set方法


package com.luhua.pojo;

import java.io.Serializable;

public class User implements Serializable {

private static final long serialVersionUID = 1L;

public User(){}

private String username ;

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}


}







在struts.xml中的配置是:
  
    <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

<constant name="struts.devMode" value="true" />
     <package name="default" namespace="/"  extends="struts-default">
        <action name="welcome" class="com.luhua.test.UserAction" method="execute">
            <result name="success">index.jsp</result>
        </action>
        <action name="user" class="com.luhua.test.UserAction" method="user">
            <result name="success">success.jsp</result>
        </action>
    </package>

</struts>

jsp页面有两张,index.jsp   和  success.jsp   从index.jsp中输入用户名; 在action中打印出来

页面的输入的name必须是属性名,不能用对象名.属性名
 
index.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

  </head>
 
  <body>
     <form action="user" method="post">
     username:<input type="text" name="username"/>    
     <input type="submit"/>
     </form>
  </body>
</html>

success.jsp


<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
 
  </head>
 
  <body>
   user
  </body>
</html>





分享到:
评论

相关推荐

    Struts2 的接受参数的几种方式

    #### 第三种方式:使用模型驱动 (Model Driven) 模型驱动是一种更高级的参数处理方式,适用于需要直接操作领域模型的情况。要使用模型驱动,Action 类需要实现 `ModelDriven` 接口,并重写 `getModel()` 方法来指定...

    Struts2接口文档

    Struts2是一个强大的Java web应用程序开发框架,它基于Model-View-Controller(MVC)设计模式,旨在简化创建用户交互式、数据驱动的web应用的过程。这个“Struts2接口文档”是开发者的重要参考资料,提供了关于...

    Struts驱动包(jar)

    2. **依赖的第三方库**: - `commons-beanutils.jar`、`commons-digester.jar`、`commons-logging.jar`:Apache Commons项目提供的工具包,分别用于Bean操作、XML解析和日志记录,是Struts框架正常运行的必要依赖。...

    Struts2 in action(struts2实战)

    - Struts2拥有丰富的插件库,如Struts2-dojo-plugin、Struts2-convention-plugin等,可以方便地集成第三方库。 7. **国际化与本地化**: - Struts2提供对多语言的支持,通过资源包(Properties文件)实现内容的...

    Struts2_OGNL

    第三步:编写Action类,例如ognl.OgnlAction类,该类应继承自Struts2的ActionSupport类,并实现必要的业务逻辑。 第四步:编写成功页面,展示登录后的结果或处理逻辑。 此外,Struts2框架还支持配置常量,如struts...

    Struts2核心包

    5. **模型驱动(ModelDriven)**:Struts2支持模型驱动,允许Action类引用一个模型对象,这样可以直接操作模型对象属性,简化视图与模型的数据绑定。 6. **工作流(Workflow)**:Struts2的工作流组件负责解析用户...

    Struts1和Struts2的区别和对比

    Struts2则直接将Action属性作为输入属性,简化了输入处理,同时支持富对象类型作为输入/输出对象,增强了模型驱动特性。 表达式语言方面,Struts1集成JSTL EL,但其对集合和索引属性的支持较弱。Struts2引入了更...

    转:struts1与struts2的区别

    此外,Struts2支持模型驱动特性,允许使用现有的业务对象作为输入/输出对象,减少了代码冗余并提高了代码复用性。 #### 6. 表达式语言的改进 - **Struts1**: Struts1集成了JSTL,使用JSTL的表达式语言(EL),支持...

    struts2基本包

    7. **其他依赖库**:如log4j、commons-lang、commons-fileupload等,这些是Struts2运行时依赖的第三方库。 使用这些基本包,开发者可以快速搭建起一个Struts2应用环境,然后根据项目需求添加更多的插件和配置,以...

    struts2教程源代码

    10. **模型驱动和值栈**:了解Struts2的模型驱动方式和值栈的概念,可以帮助你更好地管理请求参数和视图数据。 提供的"观看帮助.txt"和"例子运行说明.txt"文件很可能是对这些源代码的详细解释和运行指南,包括如何...

    Struts2和Struts1的什么区别

    综上所述,Struts2相较于Struts1,在灵活性、可扩展性、易用性和性能方面都有显著提升,特别是在模型驱动、表达式语言、视图管理和拦截器机制等方面展现了明显的优势。然而,选择何种框架还需根据项目需求、团队熟悉...

    Struts 1.1、Hibernate 3.0和SQL Server 2005数据库驱动包

    Struts 1.1、Hibernate 3.0 和 SQL Server 2005 数据库驱动包是构建基于Java的企业级Web应用程序的关键组件。这些技术在2000年代中期广泛应用于开发面向服务架构(SOA)和模型视图控制器(MVC)模式的系统。 Struts...

    struts1&struts2

    - **Struts1.x** 的测试通常需要使用如StrutsTestCase等第三方工具,由于Action的`execute`方法直接暴露了Servlet API,测试较为复杂。 - **Struts2** 提供了更好的测试支持,Action可以通过设置属性、初始化和...

    struts2-2.3.32-all

    Struts2是一个非常著名的Java Web开发框架,它提供了一种模型-视图-控制器(MVC)架构,便于开发者创建动态、数据驱动的Web应用程序。标题中的"struts2-2.3.32-all"指的是Struts2框架的2.3.32版本的完整包,通常包含...

    Struts2框架

    这些库文件涵盖了Struts2运行所需的依赖,包括核心库、插件、以及其他与Struts2集成的第三方库,如Spring、Hibernate等。开发者可以将这些库添加到他们的项目类路径中,以便运行和调试基于Struts2的应用程序。 ...

    struts2第一源代码11

    5. **模型驱动(Model Driven)**:Struts2的模型驱动模式使得Action可以直接与域对象(通常是业务实体类)绑定,简化了数据处理过程。 6. **值栈(Value Stack)**:值栈是Struts2中用于存储请求数据和视图展示...

    struts2小项目

    Struts2没有内置的分页库,但可以结合第三方库如DisplayTag或自定义逻辑来实现。 在"strutsProject3"这个压缩包中,包含了整个项目的所有源代码和配置文件。开发者可以通过阅读Action类、配置文件(struts.xml)、...

    Struts2+hibernate3

    在开发Java Web应用程序时,`Struts2`和`Hibernate3`经常被组合使用,以构建数据驱动的交互式Web应用。`Struts2`是一个强大的MVC框架,负责处理用户请求并展示结果,而`Hibernate3`则作为对象关系映射(ORM)工具,...

    struts2框架学习笔记整理

    Struts2的设计目的是为了替代传统的Servlet技术,并提供一种更加简洁、高效的处理用户请求的方式。 ##### 1.2 Struts2的核心特点 - **核心机制**:Struts2采用拦截器机制处理用户的HTTP请求,这使得业务逻辑控制器...

    OA系统+struts2

    系统管理模块通常包含用户管理、角色分配、权限设置等,这些功能可以通过Struts2的表单提交和模型驱动(ModelDriven)模式实现。信息交流模块可能涉及到邮件、公告发布等功能,可以利用Struts2的插件体系,如...

Global site tag (gtag.js) - Google Analytics