- 浏览: 151286 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
hx0637:
楼主!小弟要面临面试了,能否指导下小弟?
面试 深圳一家公司的 -
kljismi:
你好,我现在正在开这项目的代码,但是我不明白@Privileg ...
权限管理模块分析 -
yzhw:
终于找到了
ImageSizer.java -
sunloveny:
国
struts国际化 -
jackotty:
谢谢楼主的分享
struts validator验证框架
package com.test.action; import java.io.InputStream; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class DownloadAction extends ActionSupport { public InputStream getDownloadFile() { return ServletActionContext.getServletContext().getResourceAsStream( "/upload/Struts2.ppt"); } @Override public String execute() throws Exception { return SUCCESS; } }
package com.test.action; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport { 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; } public String execute() throws Exception { if ("hello".equals(this.getUsername().trim()) && "world".equals(this.getPassword().trim())) { return "success"; } else { this.addFieldError("username", "username or password error"); return "failer"; } } @Override public void validate() { if (null == this.getUsername() || "".equals(this.getUsername().trim())) { this.addFieldError("username", "username required"); } if (null == this.getPassword() || "".equals(this.getPassword().trim())) { this.addFieldError("password", "password required"); } } }
package com.test.action; import java.util.Date; import com.opensymphony.xwork2.ActionSupport; import com.test.bean.Point; public class PointAction extends ActionSupport { //private List<Point> point; private Point point; // private Point point2; // private Point point3; private int age; private String username; private Date date; public Point getPoint() { return point; } public void setPoint(Point point) { this.point = point; } // public Point getPoint2() // { // return point2; // } // // public void setPoint2(Point point2) // { // this.point2 = point2; // } // // public Point getPoint3() // { // return point3; // } // // public void setPoint3(Point point3) // { // this.point3 = point3; // } // public List<Point> getPoint() // { // return point; // } // // public void setPoint(List<Point> point) // { // this.point = point; // } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } @Override public String execute() throws Exception { return SUCCESS; } }
package com.test.action; import java.util.Calendar; import java.util.Date; import com.opensymphony.xwork2.ActionSupport; public class RegisterAction extends ActionSupport { 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; } @Override public String execute() throws Exception { return SUCCESS; } public String test() throws Exception { return SUCCESS; } // public String abc() throws Exception // { // System.out.println("abc method invoked"); // // return SUCCESS; // } // // public void validateAbc() // { // System.out.println("validateAbc() invoked"); // } // @Override public void validate() { System.out.println("validate~~~~~~~~~~~~~~~~~~~"); this.addFieldError("username","aaaaaaaaaaaaaaaa"); this.getFieldErrors().put("username","bbbbbbbbbbbbb"); if (null == username || username.length() < 6 || username.length() > 10) { this.addActionError("username invalid"); } // if (null == password || password.length() < 6 || password.length() > 10) // { // this.addActionError("password invalid"); // } // else if (null == repassword || repassword.length() < 6 // || repassword.length() > 10) // { // this.addActionError("re-password invalid"); // } // else if (!password.equals(repassword)) // { // this.addActionError("two passwords not the same"); // } // if (age <= 0 || age > 150) // { // this.addActionError("age should be between 1 and 150"); // } // // if (null != birthday && null != graduation) // { // Calendar c1 = Calendar.getInstance(); // c1.setTime(birthday); // // Calendar c2 = Calendar.getInstance(); // c2.setTime(graduation); // // if (!c1.before(c2)) // { // this.addActionError("birthday should be before graduation"); // } // } } }
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 RegisterAction2 extends ActionSupport implements ModelDriven<User>,Preparable { private User user = new User(); public User getModel() { return user; } public void prepare() throws Exception { System.out.println("hello world"); } @Override public String execute() throws Exception { return SUCCESS; } }
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> <validators> <!-- <validator type="requiredstring"> <param name="fieldName">username</param> <message>username should not be blank!</message> </validator> <validator type="stringlength"> <param name="fieldName">username</param> <param name="minLength">6</param> <param name="maxLength">10</param> <message>username should be between ${minLength} and ${maxLength}</message> </validator> --> <field name="username"> <field-validator type="requiredstring"> <param name="trim">true</param> <message>username should not be blank!</message> </field-validator> <field-validator type="stringlength"> <param name="minLength">6</param> <param name="maxLength">10</param> <message>username should be between ${minLength} and ${maxLength}</message> </field-validator> </field> <field name="password"> <field-validator type="requiredstring"> <message>password should not be blank!</message> </field-validator> <field-validator type="stringlength"> <param name="minLength">6</param> <param name="maxLength">10</param> <message>password should be between ${minLength} and ${maxLength}</message> </field-validator> </field> <field name="repassword"> <field-validator type="requiredstring"> <message>repassword should not be blank!</message> </field-validator> <field-validator type="stringlength"> <param name="minLength">6</param> <param name="maxLength">10</param> <message>repassword should be between ${minLength} and ${maxLength}</message> </field-validator> </field> <field name="age"> <field-validator type="required"> <message>age should not be blank!</message> </field-validator> <field-validator type="int"> <param name="min">1</param> <param name="max">150</param> <message>age should be between ${min} and ${max}</message> </field-validator> </field> <field name="birthday"> <field-validator type="required"> <message>birthday should not be blank!</message> </field-validator> <field-validator type="date"> <param name="min">2001-01-01</param> <param name="max">2003-12-31</param> <message>birthday should be between ${min} and ${max}</message> </field-validator> </field> <field name="graduation"> <field-validator type="required"> <message>graduation should not be blank!</message> </field-validator> <field-validator type="date"> <param name="min">2005-01-01</param> <param name="max">2007-12-31</param> <message>graduation should be between ${min} and ${max}</message> </field-validator> </field> </validators>
package_en_US.properties
username.xml.invalid = package information
PointAction-conversion.properties
#point=com.test.converter.PointConverter #point2=com.test.converter.PointConverter #point3=com.test.converter.PointConverter #point=com.test.converter.PointConverter3
RegisterAction_en_US.properties
username.xml.invalid = RegisterAction information
发表评论
-
xml
2009-01-13 17:00 1261<?xml version="1.0" ... -
\struts2\src\com\interceptor
2009-01-13 16:45 763package com.interceptor; pub ... -
struts2\src\com\i18n
2009-01-13 16:42 867package com.i18n; import jav ... -
struts2\src\com\test\interceptor
2009-01-13 16:39 759package com.test.bean; impor ... -
struts2\src\com\test\converter
2009-01-13 16:34 1038package com.test.service.impl; ... -
DecoderTest
2009-01-13 16:30 558package com.test.url; import ... -
\struts2\src\com\test\servlet
2009-01-13 16:27 938package com.test.servlet; im ... -
Struts2
2009-01-13 16:24 767遇到类型转换错误的时候(也就是说不能进行类型转换),strut ...
相关推荐
9. **源码结构**:Struts2SpringUnitDemo项目可能包含了标准的Java项目结构,如src/main/java(存放源码)、src/test/java(存放测试代码)、WEB-INF目录下的struts.xml和spring配置文件等。 通过这个项目,开发者...
2. 把 Struts2 的配置文件 struts.xml 直接放到 src 下面。 3. 在 web.xml 文件中配置 Struts2 框架的过滤器。 Struts2 框架的过滤器配置 Struts2 框架的过滤器用于拦截 Struts2 框架中的 Action。在 web.xml 文件...
- 在src目录下创建一个Java包,例如`com.example.struts2test.action`,然后创建一个简单的Action类,如`HelloWorldAction`,实现`execute`方法并返回一个结果。 7. **配置struts.xml**: - 创建`struts.xml`配置...
3. **src/test**:测试代码,可以帮助我们了解如何测试Struts2的功能和组件。 4. **src/main/resources**:资源文件,如配置文件、本地化字符串等。 5. **pom.xml**:Maven项目对象模型文件,用于构建和管理项目依赖...
- `src/main/java`: 包含Struts2 Action类和其他业务逻辑组件。 - `src/test/java`: 存放单元测试代码,每个Action类对应一个测试类。 示例代码可能如下: ```java import org.junit.Before; import org.junit....
当用户请求"/test"时,Struts2会根据配置将控制权交给TestAction,然后渲染出由Tiles定义的视图。 在Eclipse中,设置好Tomcat服务器,右键点击项目选择"Run As" -> "Run on Server",如果配置无误,你应该能在...
在src中,你可以研究`org.apache.struts2.config`包下的类,如`PackageConfigBuilder`和`StrutsConfig.xml`解析器,了解Struts2如何读取并解析配置文件,以建立应用的配置模型。 3. **拦截器机制**: Struts2的...
- `src/main/java/com/yourcompany/app`:包含Action类和其他业务逻辑类。 - `src/main/resources`:可能包含Struts2的配置文件`struts.xml`或其他定制的配置。 - `src/main/webapp/WEB-INF`:`web.xml`文件定义...
这个压缩包包含了Struts2框架的两个主要部分:文档(docs)和源代码(src)。下面我们将详细探讨这两个部分的内容及其重要性。 首先,`struts-2.2.3-docs.zip`是Struts2的官方文档,这是开发者理解和使用框架的重要...
- `<action name="test" class="com.teaweb.action.TestAction">`:定义了一个名为`test`的动作,对应到`TestAction`类。 4. **配置web.xml**: - 在项目的`src/main/webapp/WEB-INF`目录下创建或修改`web.xml`...
一个典型的Struts2+Spring+JPA项目会包含以下几个主要部分:Web-INF下的`web.xml`和`struts.xml`,`src/main/resources`下的`applicationContext.xml`和`persistence.xml`,以及`src/main/java`下的Action类、...
4. **整合步骤**:配置Struts2的Spring插件,使Struts2能够从Spring容器中获取Action实例。在Action类中注入Service,Service再注入DAO,形成完整的依赖链。 5. **测试**:编写JUnit测试用例,验证Spring、Struts2...
Struts2的核心配置文件是`struts.xml`,它用于定义应用程序的行为和结构,包括Action的映射、拦截器的配置等。 - **操作方法**:将`struts.xml`文件复制到项目的src目录下,并且可以将日志配置文件`log4j....
你需要根据你的业务逻辑,定义Action类,编写`struts.xml`配置,设定结果页面,并使用Struts2提供的各种标签库来渲染视图。同时,不要忘记利用Struts2的强大功能,如拦截器、结果类型、国际化、数据校验等,以提高...
例如,我们可以创建一个名为TestAction的类,它继承自ActionSupport,这是Struts2中所有Action的基础类。ActionSupport提供了许多有用的功能,如国际化支持、错误处理等。在TestAction类中,我们定义一个name属性,...
学习和实践“struts2-test”项目,你可以逐步了解Struts2的配置、Action编写、视图渲染、拦截器实现以及如何进行单元测试。通过实际操作,你会对Struts2框架有更深入的理解,为开发更复杂的Java Web应用打下坚实基础...
在Struts2中,Action是处理用户请求的核心组件,它接收来自控制器的请求,执行相应的业务逻辑,并返回结果到视图层。jQuery则是一个流行的JavaScript库,极大地简化了DOM操作、事件处理以及Ajax交互等前端任务。 ...
4.建立文件夹需要在src/struts2.xml里添加一句话:<package name="folder1" namespace="/folder1" extends="default"></package> 5.WebRoot/WEB-INF/jsp目录建立对应的文件夹folder1 6.在包com.test.web.action...
你需要理解如何在Struts2的Action中注入SessionFactory,然后在业务逻辑中调用Hibernate的方法。 4. **项目结构**:Y2T014_s2h3可能代表项目的目录结构,通常包含src/main/java(源代码)、src/main/resources...
在本案例中,我们将探讨如何使用 Struts2 的 Action 配合 jQuery 的 AJAX 方法来实现实时验证和数据交换。 首先,我们需要了解 jQuery。jQuery 是一个强大的 JavaScript 库,它简化了 DOM 操作、事件处理、动画以及...