- 浏览: 124466 次
- 性别:
- 来自: 深圳
文章分类
最新评论
1,struts2有属性驱动方式与模型驱动两种方式:之前的例子都是使用属性驱动,下面来看看模型驱动的方式
先将之前RegisterAction中的所有属性取出,如username,password,repassword等 。。。。,在bean包下新建一个JavaBean类User,将从RegisterAction中属性放入此Bean中。
User.java
package com.test.bean; import java.sql.Date; public class User { private String username; private String password; private String repassword; private int age; private Date birthday; private Date graduation; 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 getRepassword() { return repassword; } public void setRepassword(String repassword) { this.repassword = repassword; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public Date getGraduation() { return graduation; } public void setGraduation(Date graduation) { this.graduation = graduation; } }
然后新建一个RegisterAction2.java.需实现ModelDriven接口
package com.test.action; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; import com.test.bean.User; public class RegisterAction3 extends ActionSupport implements ModelDriven { private User user = new User(); public Object getModel() { return user; } }
这样就实现了struts2的模型驱动。但还是建议使用属性驱动。
模型驱动是由拦截器实现的,具体的拦截器为ModelDrivenInterceptor,在struts-default.xml文件中有对此拦截器定义。
2,Preparable接口
此接口有一个prepare()方法,实现此接口的action,会先执行prepare()方法,如
package com.test.action; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; import com.opensymphony.xwork2.Preparable; import com.test.bean.User; public class RegisterAction3 extends ActionSupport implements ModelDriven,Preparable { private User user = new User(); public Object getModel() { return user; } public void prepare() throws Exception { System.out.println("hello world"); } }
这个action会首先打印出hello world,再执行其它方法。
2,将struts2的错误提示显示在每个表单的后面
<s:form action="register" theme="simple"> <tr> <td>username:</td> <td> <s:textfield name="username"> </s:textfield> </td> <td> <s:fielderror> <s:param>username</s:param> </s:fielderror> </td> </tr>
3,验证表单重复提交,有些页面只允许提交一次,如注册页面
在jsp页面上加一个token标签
<s:form action="register" theme="simple"> <s:token name="hello"></s:token>
查看其生成页面的HTML文件,如下
<input type="hidden" name="hello" value="8S6MOOA3YX76ZUXZ8WZ1I29NNFC2E3JW" />
其中的value值是由struts2加密生成的,此页面提交后,value值会放在session中,在用户下一次再提交时,页面的value值不变,但服务器session中的value值已被删除,导致验证不通过,以达到避免重复提交。
由于此功能是由TokenInterceptor拦截器实现的。在struts-default.xml文件中有声明此拦截器,但默认拦截器栈并没有包含此拦截器。
因此需要在自己的action中引用此拦截器,并且要加一个特别result,用户指定当token不合法时,跳转的页面
<result name="invalid.token">/register.jsp</result> <interceptor-ref name="token"></interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref>
用户提交成功后,若想刷新页面再提交一次,则会不成功。
- Struts2_doc.rar (4.2 MB)
- 下载次数: 5
发表评论
-
Struts2(18):Struts2深入探索续2
2011-06-06 03:15 624Struts2与Servlet是低耦合的,这可使项目不依赖于具 ... -
Struts2(16): Struts2深入探索
2011-06-05 12:56 962先来看看struts2包中的一些配置文件: 1,strut ... -
Struts2(15):Struts2的国际化续
2011-06-04 23:38 945Struts2中action错误的国际化 在action类的 ... -
Struts2(14):Struts2的国际化
2011-06-04 02:44 918先看看JAVA的国际化实现:JAVA国际化是使用java.ut ... -
Struts2(13):Struts2的上传下载续2
2011-06-04 00:07 963本节主要介绍上传任意数据的文件、指定文件类型上传与Struts ... -
Struts2(12):Struts2的上传下载续
2011-05-29 12:40 951使用Struts2结束common的fileupload和io ... -
Struts2(11):Struts2的上传下载
2011-05-29 01:00 892首先来看看在JSP中上传是如何做的: 从upload.jsp ... -
Struts2(10):Struts2的监听器与验权小例
2011-05-28 18:27 3083Struts2的监听器: 在xwork-2.0.7.jar包 ... -
Struts2(7):Struts2的输入校验框架(xml配置文件校验)
2011-05-22 22:00 3004上一节使用了Action类中的validate方法进行校验,此 ... -
Struts2(6):Struts2的输入校验2
2011-05-22 18:13 1115遇到类型转换错误的时候(也就是说不能进行类型转换),strut ... -
Struts2(5):Struts2的输入校验
2011-05-22 16:23 11571,Register.jsp,一个注册页面,包括用户名,密码, ... -
Struts2(4):Struts2类型转换2
2011-05-22 12:35 11011,修改上一节的input.jsp文件 <s:form ... -
Strtus2(3):struts2的类型转换
2011-05-21 23:34 10421,新建一个Point类,包含两个变量x,y。只有set,ge ... -
Struts2(2):Struts2的输入检验
2011-05-21 12:44 9801:新建一个login2.jsp,使用Struts2的标签编写 ... -
Struts2(1):入门与配置
2011-05-21 11:51 5891,在MyEclipse中新建一个WEB工程:struts2d ... -
Struts2(9):开发自己的Struts2拦截器(编码与配置)
2011-05-15 21:16 1555要开发自己的Struts2拦截器类,需要实现Inte ... -
Struts2(8):拦截器的简单实现原理
2011-05-15 18:29 898什么是拦截器: 拦截器,在AOP(Aspect-Oriente ...
相关推荐
Struts 是一个开源的Java Web框架,它主要用来构建企业级的应用程序,特别是那些基于Model-View-Controller(MVC)架构的Web应用。...在这个过程中,不断探索和解决问题,你的Struts技能将更加熟练。
- 配置Struts2:在`struts.xml`配置文件中定义Action类、结果页面和拦截器。 - 创建Action类:这是处理用户请求的核心,实现业务逻辑。 - 编写JSP页面:使用Struts2的标签库来展示数据和处理用户输入。 3. **...
在第19讲“Struts2深入探索”中,我们将继续深入理解Struts2的核心特性和工作原理,这包括但不限于配置、拦截器、插件、以及源码分析。以下是关于Struts2的一些关键知识点: 1. **MVC模式**:Struts2遵循Model-View...
- **深入源码**:针对某些重要知识点,比如Action的执行流程、拦截器的工作原理等,本教程还会带领学员一起探索源码,加深对框架内部机制的理解。 ### 结语 通过以上对Struts2各个方面的介绍,可以看出Struts2不仅...
在这个项目中,我们将深入探讨Struts2的关键特性、配置以及它如何协调各个组件来实现业务逻辑和用户界面的分离。 首先,了解Struts2的基础架构至关重要。Struts2的核心是Action类,它是处理用户请求并执行业务逻辑...
《深入浅出Struts 2》是一本专为Java开发者设计的书籍,旨在全面解析Struts 2框架的原理、特性和实际应用。Struts 2是Java Web开发中的一个热门框架,它提供了强大的MVC(Model-View-Controller)架构支持,极大地...
在第18讲“Struts2深入探索”中,我们将会探讨Struts2的一些高级特性和深入使用的技巧。这篇学习笔记将主要围绕以下几个核心知识点展开: 1. **拦截器(Interceptors)**: Struts2的核心特性之一是拦截器,它允许...
Struts2 深入探索 Struts2 是一个基于 Model-View-Controller(MVC)设计模式的Java Web框架,它旨在简化开发过程并提供更健壮的控制层。Struts2 结合了WebWork的优秀特性与Struts1的优点,提供了更强大的功能和更...
本文将深入探讨Struts2自定义标签的实现机制、优点以及如何在实际项目中进行应用。 一、Struts2自定义标签的概念 自定义标签是JSP的一种扩展,允许开发者创建自己的HTML标签,这些标签可以封装复杂的业务逻辑,使得...
这个"struts2 demo project"是为了帮助开发者理解和实践Struts2框架而创建的一个示例项目,旨在提供一个基础的、可运行的实例,让大家能够深入探索Struts2的核心特性和功能。 在Struts2框架中,以下是一些关键知识...
Struts 2是一款强大的MVC(Model-...深入研究这些例子,将有助于你掌握Struts 2的核心特性和实际应用,为构建高效、可维护的Java Web应用打下坚实基础。在实践中不断探索和学习,你将能更好地理解和运用Struts 2框架。
Struts2是一个强大的MVC(模型-视图-控制器)框架,用于构建可维护性和可扩展性极高的Java Web应用程序。...对于初学者来说,了解和实践上述步骤是掌握Struts2框架的第一步,后续可以逐步探索更多高级特性和最佳实践。
总的来说,手动搭建Struts2环境虽然相对繁琐,但通过这个过程,开发者能更深入地理解Struts2框架的工作机制,这对于学习和掌握Struts2来说是十分有益的。随着对框架理解的深入,你可以进一步探索如何优化配置、整合...
Struts2是一个强大的Java EE应用程序框架,主要用于...当你对这些基础有了一定的了解后,可以进一步探索Struts2的高级特性,如国际化、上传下载、AJAX支持等。不断实践和深入研究,将使你在Struts2开发领域更加熟练。
Struts2是一个强大的Java web应用程序框架,用于构建和部署可维护、高性能的Web应用程序。...随着对Struts2的深入学习,你还可以探索更高级的主题,如拦截器的自定义、国际化、异常处理等,进一步提升你的Web开发技能。
Struts2是一个强大的Java web应用程序框架,用于构建和维护可扩展、高效且易于维护的Web应用。这本书"Struts2 In Action"是深入探讨...通过这本书,你可以深入探索Struts2的每一个角落,从而在实际项目中更加得心应手。
在本教程中,我们将深入探讨Struts2的基础知识,包括环境配置、OGNL(Object-Graph Navigation Language)以及值栈和域的概念。 首先,让我们开始介绍如何配置Struts2环境。安装Struts2需要以下步骤: 1. **添加...
在本项目“struts2 helloworld”中,我们将会探索如何在MyEclipse 6.0集成开发环境中,利用JDK 1.6和Tomcat 6.0服务器来搭建一个基本的Struts2应用。 首先,我们需要安装和配置这些必要的工具。MyEclipse 6.0是一个...