第三种是:将对象写在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>
分享到:
相关推荐
#### 第三种方式:使用模型驱动 (Model Driven) 模型驱动是一种更高级的参数处理方式,适用于需要直接操作领域模型的情况。要使用模型驱动,Action 类需要实现 `ModelDriven` 接口,并重写 `getModel()` 方法来指定...
Struts2是一个强大的Java web应用程序开发框架,它基于Model-View-Controller(MVC)设计模式,旨在简化创建用户交互式、数据驱动的web应用的过程。这个“Struts2接口文档”是开发者的重要参考资料,提供了关于...
2. **依赖的第三方库**: - `commons-beanutils.jar`、`commons-digester.jar`、`commons-logging.jar`:Apache Commons项目提供的工具包,分别用于Bean操作、XML解析和日志记录,是Struts框架正常运行的必要依赖。...
- Struts2拥有丰富的插件库,如Struts2-dojo-plugin、Struts2-convention-plugin等,可以方便地集成第三方库。 7. **国际化与本地化**: - Struts2提供对多语言的支持,通过资源包(Properties文件)实现内容的...
第三步:编写Action类,例如ognl.OgnlAction类,该类应继承自Struts2的ActionSupport类,并实现必要的业务逻辑。 第四步:编写成功页面,展示登录后的结果或处理逻辑。 此外,Struts2框架还支持配置常量,如struts...
5. **模型驱动(ModelDriven)**:Struts2支持模型驱动,允许Action类引用一个模型对象,这样可以直接操作模型对象属性,简化视图与模型的数据绑定。 6. **工作流(Workflow)**:Struts2的工作流组件负责解析用户...
Struts2则直接将Action属性作为输入属性,简化了输入处理,同时支持富对象类型作为输入/输出对象,增强了模型驱动特性。 表达式语言方面,Struts1集成JSTL EL,但其对集合和索引属性的支持较弱。Struts2引入了更...
此外,Struts2支持模型驱动特性,允许使用现有的业务对象作为输入/输出对象,减少了代码冗余并提高了代码复用性。 #### 6. 表达式语言的改进 - **Struts1**: Struts1集成了JSTL,使用JSTL的表达式语言(EL),支持...
7. **其他依赖库**:如log4j、commons-lang、commons-fileupload等,这些是Struts2运行时依赖的第三方库。 使用这些基本包,开发者可以快速搭建起一个Struts2应用环境,然后根据项目需求添加更多的插件和配置,以...
10. **模型驱动和值栈**:了解Struts2的模型驱动方式和值栈的概念,可以帮助你更好地管理请求参数和视图数据。 提供的"观看帮助.txt"和"例子运行说明.txt"文件很可能是对这些源代码的详细解释和运行指南,包括如何...
综上所述,Struts2相较于Struts1,在灵活性、可扩展性、易用性和性能方面都有显著提升,特别是在模型驱动、表达式语言、视图管理和拦截器机制等方面展现了明显的优势。然而,选择何种框架还需根据项目需求、团队熟悉...
Struts 1.1、Hibernate 3.0 和 SQL Server 2005 数据库驱动包是构建基于Java的企业级Web应用程序的关键组件。这些技术在2000年代中期广泛应用于开发面向服务架构(SOA)和模型视图控制器(MVC)模式的系统。 Struts...
- **Struts1.x** 的测试通常需要使用如StrutsTestCase等第三方工具,由于Action的`execute`方法直接暴露了Servlet API,测试较为复杂。 - **Struts2** 提供了更好的测试支持,Action可以通过设置属性、初始化和...
Struts2是一个非常著名的Java Web开发框架,它提供了一种模型-视图-控制器(MVC)架构,便于开发者创建动态、数据驱动的Web应用程序。标题中的"struts2-2.3.32-all"指的是Struts2框架的2.3.32版本的完整包,通常包含...
这些库文件涵盖了Struts2运行所需的依赖,包括核心库、插件、以及其他与Struts2集成的第三方库,如Spring、Hibernate等。开发者可以将这些库添加到他们的项目类路径中,以便运行和调试基于Struts2的应用程序。 ...
5. **模型驱动(Model Driven)**:Struts2的模型驱动模式使得Action可以直接与域对象(通常是业务实体类)绑定,简化了数据处理过程。 6. **值栈(Value Stack)**:值栈是Struts2中用于存储请求数据和视图展示...
Struts2没有内置的分页库,但可以结合第三方库如DisplayTag或自定义逻辑来实现。 在"strutsProject3"这个压缩包中,包含了整个项目的所有源代码和配置文件。开发者可以通过阅读Action类、配置文件(struts.xml)、...
在开发Java Web应用程序时,`Struts2`和`Hibernate3`经常被组合使用,以构建数据驱动的交互式Web应用。`Struts2`是一个强大的MVC框架,负责处理用户请求并展示结果,而`Hibernate3`则作为对象关系映射(ORM)工具,...
Struts2的设计目的是为了替代传统的Servlet技术,并提供一种更加简洁、高效的处理用户请求的方式。 ##### 1.2 Struts2的核心特点 - **核心机制**:Struts2采用拦截器机制处理用户的HTTP请求,这使得业务逻辑控制器...
系统管理模块通常包含用户管理、角色分配、权限设置等,这些功能可以通过Struts2的表单提交和模型驱动(ModelDriven)模式实现。信息交流模块可能涉及到邮件、公告发布等功能,可以利用Struts2的插件体系,如...