- 浏览: 74270 次
- 性别:
- 来自: 惠州
文章分类
最新评论
-
woyaonuli:
各位大侠,请教下,怎么让生成的pdf每页都有背景图片, ...
iText 跨行and背景图片 -
lixia0417:
恩,LZ,谢谢了,那我还是练习把SSh的例子改成S2sh的吧, ...
struts2+hibernate3+spring2读书笔记4(数据校验器) -
hhr_michael:
哥们,你好,这本书着重s2sh的各个部分开发,而整合的例子不是 ...
struts2+hibernate3+spring2读书笔记4(数据校验器) -
lixia0417:
对,哥们,问一下,这本书中关于S2SH整合开发的例子多吗,就是 ...
struts2+hibernate3+spring2读书笔记4(数据校验器) -
hhr_michael:
谢谢提醒,由于只是着重校验的过程,所以这代码没有在struts ...
struts2+hibernate3+spring2读书笔记4(数据校验器)
最近买了谢星星(阿蜜果)的企业应用架构设计-Struts2+Hibernate3+Spring2,想更好地学习与管理资料,现在在博客上写读书笔记,呵呵!
第5章 数据校验器
一.使用重写validate()方法进行手动校验
实例需求:Struts2中可通过在Action中重写ActionSupport类的validate()方法来完成Action中各方法的难证。
1. 建立工程(可参考前几章的建立,方法类似,需在web.xml文件中配置Struts2的FilterDispatcher)
2. 编写用户信息的pojo类:User.java 代码如下:
3. 编写注册的Action:RegAction.java 代码如下:
二.使用重写validateXxx()方法进行手动校验(这个例子主要是实现在同一个action中实现不同的验证方法)
1. 编写用户信息的Action: UserAction.java 具体代码如下:
2. 编写注册页面: validateXxxReg.jsp 具体代码如下:
以上四步后,就完成了重写validateXxx()方法进行手动校验了!呵呵!下面我们再来看看Struts2的验证框架。
三.使用Struts2的验证框架完成服务端校验
1.编写Action类:ValjFrameworkRegAction.java
2.编写验证文件: ValFrameworkRegAction-validsation.xml
Struts 2 中的每个Action都可以有一个验证文件,该验证文件与Action处于同目录中,命名格式为:Action的名称-validation.xml,其中“-validation.xml”是确定的,而“Action的名称”会根椐不同的Action而有所不同,本实例的验证文件的名称为:ValFrameworkRegAction-validsation.xml 具体内容如下:
4.配置struts.xml,添加的信息如下:
四.使用Struts2的验证框架完成客户端校验
在Strut2中,进行客户端校验将由框架在页面中自动生成javascript代码,在提交时调用自动生成的javascript代码中的函数:validateForm_Action 名称(),要实现客户端校验比较简单,只要在jsp页面的form的validate属性设为true就可以了。如下:
五.国际化校验的提示信息
主要是实现验证信息的国际化:步骤如下:
1. 在src目录中创建校验提示信息的配置文件
2.修改struts.xml文件
在struts的头部添加如下代码(注是在struts的标签内添加):
以上三步后,就完成了国际化的验证校验了!
六.常用内建的较验器
1. 必填字符串校验器requiredstring
filedName:用于非字段校验器,指定需要验证的属性名。
Min: 可选参数,用于指定整数最小值
Max:可选参数,用于指定最大值。
Fieldname:非字段校验器具有该属性,指定Action属必名。
Expression:必填,指定正则表达式
caseSensitive:非必填,指定是否区分大小写,默认为true.
4.必填校验器
5.字符串度度校验器
6.日期校验器
8.邮件地址校验器
第5章 数据校验器
一.使用重写validate()方法进行手动校验
实例需求:Struts2中可通过在Action中重写ActionSupport类的validate()方法来完成Action中各方法的难证。
1. 建立工程(可参考前几章的建立,方法类似,需在web.xml文件中配置Struts2的FilterDispatcher)
2. 编写用户信息的pojo类:User.java 代码如下:
package amigo.struts.validation; import java.util.Date; /* * 用户信息的pojo类 * */ public class User { /**用户名*/ private String username; /**密码*/ private String password; /**性别*/ private int gender; /**年龄*/ private int age; /**生日*/ private Date birthDate; /**联系电话*/ private String tel; /**Email*/ private String email; /**个人首页*/ private String url; 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 int getGender() { return gender; } public void setGender(int gender) { this.gender = gender; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Date getBirthDate() { return birthDate; } public void setBirthDate(Date birthDate) { this.birthDate = birthDate; } public String getTel() { return tel; } public void setTel(String tel) { this.tel = tel; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } }
3. 编写注册的Action:RegAction.java 代码如下:
package amigo.struts.validation; import java.util.regex.Pattern; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.interceptor.ServletRequestAware; import com.opensymphony.xwork2.ActionSupport; /* * 使用validate()完成注册验证 * */ public class RegAction extends ActionSupport implements ServletRequestAware { private User user; private HttpServletRequest request; public User getUser() { return user; } public void setUser(User user) { this.user = user; } public HttpServletRequest getServletRequest() { return request; } public void setServletRequest(HttpServletRequest request) { this.request = request; } /* * 重写validate()方法实现验证 * */ public void validate(){ //非空验证与输入合法验证 if(user.getUsername()==null||"".equals(user.getUsername().trim())){ this.addFieldError("user.username","用户名不能为空"); }else if(user.getUsername()!=null&&!Pattern.matches("\\w{5,50}",user.getUsername().trim())){ this.addFieldError("user.username","用户名输入不合法,必须为长度为5-50的字母或数字"); } if(user.getPassword()==null||"".equals(user.getPassword().trim())) { this.addFieldError("user.password","密码不能为空"); }else if(user.getPassword()!=null&&!Pattern.matches("\\w{5,50}", user.getPassword().trim())){ this.addFieldError("user.password","密码输入不合法,必须为长度为5-50的字母或数字"); } if(user.getAge()<0||user.getAge()>130){ this.addFieldError("user.age","年龄不合法"); } } public String execute(){ return null; } }4.编写注册页面:reg.jsp 代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>用户注册</title> </head> <body> <s:form action="reg"> <s:textfield name="user.username" label="用户名"/> <s:password name="user.password" label="密码"></s:password> <s:select label="性别" name="user.gender" list="#{'1':'男','0':'女'}" listKey="key" listValue="value" value="0"/> <s:textfield name="user.age" label="年龄"></s:textfield> <s:textfield name="user.birthDate" label="出生日期"></s:textfield> <s:textfield name="user.tel" label="联系电话"></s:textfield> <s:textfield name="user.email" label="Email"></s:textfield> <s:textfield name="user.url" label="个人首页"></s:textfield> <s:submit value="提交"></s:submit> </s:form> </body> </html>5.配置struts.xml文件 代码如下:
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <include file="struts-default.xml"/> <package name="amigo" extends="struts-default"> <action name="reg" class="amigo.struts.validation.RegAction"> <result name="input">/validation/reg.jsp</result> </action> </package> </struts>以上五步后,就完成了重写validate()方法进行手动校验了!呵呵!
二.使用重写validateXxx()方法进行手动校验(这个例子主要是实现在同一个action中实现不同的验证方法)
1. 编写用户信息的Action: UserAction.java 具体代码如下:
package amigo.struts.validation; import java.util.regex.Pattern; import com.opensymphony.xwork2.ActionSupport; /** * 使用validateXxx()方法完成注册验证 * */ public class UserAction extends ActionSupport { private User user; public User getUser() { return user; } public void setUser(User user) { this.user = user; } /** * 验证用户信息注册表单 * */ public void validateReg(){ //非空验证与输入合法验证 if(user.getUsername()==null||"".equals(user.getUsername().trim())){ this.addFieldError("user.username","用户名不能为空"); }else if(user.getUsername()!=null&&!Pattern.matches("\\w{5,50}",user.getUsername().trim())){ this.addFieldError("user.username","用户名输入不合法,必须为长度为5-50的字母或数字"); } if(user.getPassword()==null||"".equals(user.getPassword().trim())) { this.addFieldError("user.password","密码不能为空"); }else if(user.getPassword()!=null&&!Pattern.matches("\\w{5,50}", user.getPassword().trim())){ this.addFieldError("user.password","密码输入不合法,必须为长度为5-50的字母或数字"); } if(user.getAge()<0||user.getAge()>130){ this.addFieldError("user.age","年龄不合法"); } } public void validateLogin(){ //非空验证与输入合法验证 if(user.getUsername()==null||"".equals(user.getUsername().trim())){ this.addFieldError("user.username", "用户名不能为空!"); } if(user.getPassword()==null||"".equals(user.getPassword().trim())){ this.addFieldError("user.password", "密码不能为空!"); } } /** * 用户完成注册 * */ public String reg(){ //实现代码省略 return null; } public String login(){ //实现代码省略 return null; } public String execute(){ return null; } }
2. 编写注册页面: validateXxxReg.jsp 具体代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>用户注册</title> </head> <body> <s:form action="userReg"> <s:textfield name="user.username" label="用户名"/> <s:password name="user.password" label="密码"></s:password> <s:select label="性别" name="user.gender" list="#{'1':'男','0':'女'}" listKey="key" listValue="value" value="0"/> <s:textfield name="user.age" label="年龄"></s:textfield> <s:textfield name="user.birthDate" label="出生日期"></s:textfield> <s:textfield name="user.tel" label="联系电话"></s:textfield> <s:textfield name="user.email" label="Email"></s:textfield> <s:textfield name="user.url" label="个人首页"></s:textfield> <s:submit value="提交"></s:submit> </s:form> </body> </html>3. 编写登录页面:validateXxxLogin.jsp 具体代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>用户登录</title> </head> <body> <s:form action="userLogin"> <s:textfield name="user.username" label="用户名:"></s:textfield> <s:password name="user.password" label="密码:"></s:password> <s:submit></s:submit> </s:form> </body> </html>4. 配置 sturts.xml
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <include file="struts-default.xml"/> <package name="amigo" extends="struts-default"> <action name="reg" class="amigo.struts.validation.RegAction"> <result name="input">/validation/reg.jsp</result> </action> <action name="userReg" class="amigo.struts.validation.UserAction" method="reg"> <result name="input">/validation/validateXxxReg.jsp</result> </action> <action name="userLogin" class="amigo.struts.validation.UserAction" method="login"> <result name="input">/validation/validateXxxLogin.jsp</result> </action> </package> </struts>
以上四步后,就完成了重写validateXxx()方法进行手动校验了!呵呵!下面我们再来看看Struts2的验证框架。
三.使用Struts2的验证框架完成服务端校验
1.编写Action类:ValjFrameworkRegAction.java
package amigo.struts.validation; import com.opensymphony.xwork2.ActionSupport; /** * 使用Struts2的验证框架完成数据校验 * */ public class ValFrameworkRegAction extends ActionSupport { private User user; public User getUser() { return user; } public void setUser(User user) { this.user = user; } public String execute(){ return null; } }
2.编写验证文件: ValFrameworkRegAction-validsation.xml
Struts 2 中的每个Action都可以有一个验证文件,该验证文件与Action处于同目录中,命名格式为:Action的名称-validation.xml,其中“-validation.xml”是确定的,而“Action的名称”会根椐不同的Action而有所不同,本实例的验证文件的名称为:ValFrameworkRegAction-validsation.xml 具体内容如下:
<?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> <field name="user.username"> <field-validator type="requiredstring"> <param name="trim">true</param> <message>用户名不能为空</message> </field-validator> <field-validator type="regex"> <param name="expression"><![CDATA[(\w{5,50})]]></param> <message>用户名输入不合法,必须为长度为5-50之间的字母或数字</message> </field-validator> </field> <field name="user.password"> <field-validator type="requiredstring"> <param name="trim">true</param> <message>密码不能为空</message> </field-validator> <field-validator type="regex"> <param name="expression"><![CDATA[(\w{5,50})]]></param> <message>密码输入不合法,必须为长度为5-50之间的字母或数字</message> </field-validator> </field> <field name="user.age"> <field-validator type="int"> <param name="min">1</param> <param name="max">130</param> <message>年龄输入不合法</message> </field-validator> </field> </validators>3. 编写注册页面:valFrameworkReg.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>用户注册</title> </head> <body> <s:form action="valFrameworkReg" > <s:textfield name="user.username" label="用户名"/> <s:password name="user.password" label="密码"></s:password> <s:select label="性别" name="user.gender" list="#{'1':'男','0':'女'}" listKey="key" listValue="value" value="0"/> <s:textfield name="user.age" label="年龄"></s:textfield> <s:textfield name="user.birthDate" label="出生日期"></s:textfield> <s:textfield name="user.tel" label="联系电话"></s:textfield> <s:textfield name="user.email" label="Email"></s:textfield> <s:textfield name="user.url" label="个人首页"></s:textfield> <s:submit value="提交"></s:submit> </s:form> </body> </html>
4.配置struts.xml,添加的信息如下:
<action name="valFrameworkReg" class="amigo.struts.validation.ValFrameworkRegAction"> <result name="input">/validation/valFrameworkReg.jsp</result> </action>以上四步后,就完成了Struts2的验证框架服务端的校验了!呵呵!下面我们再来看看客户端的校验。
四.使用Struts2的验证框架完成客户端校验
在Strut2中,进行客户端校验将由框架在页面中自动生成javascript代码,在提交时调用自动生成的javascript代码中的函数:validateForm_Action 名称(),要实现客户端校验比较简单,只要在jsp页面的form的validate属性设为true就可以了。如下:
<s:form action=”valFrameworkReg” validate=”true”></s:form>
五.国际化校验的提示信息
主要是实现验证信息的国际化:步骤如下:
1. 在src目录中创建校验提示信息的配置文件
validationMessages.properties user.username.requried=用户名不能为空 user.username.regex=用户名输入不合法,必须为长度为5-50之间的字母或数字 user.password.requried=密码不能为空 user.password.regex=密码输入不合法,必须为长度为5-50之间的字母或数字 user.age=年龄必须在${min}和${max}}之间! validationMessages_zh_CN.properties user.username.requried=\u7528\u6237\u540d\u4e0d\u80fd\u4e3a\u7a7a user.username.regex=\u7528\u6237\u540d\u8f93\u5165\u4e0d\u5408\u6cd5\uff0c\u5fc5\u987b\u4e3a\u957f\u5ea6\u4e3a5-50\u4e4b\u95f4\u7684\u5b57\u6bcd\u6216\u6570\u5b57 user.password.requried=\u5bc6\u7801\u4e0d\u80fd\u4e3a\u7a7a user.password.regex=\u5bc6\u7801\u8f93\u5165\u4e0d\u5408\u6cd5\uff0c\u5fc5\u987b\u4e3a\u957f\u5ea6\u4e3a5-50\u4e4b\u95f4\u7684\u5b57\u6bcd\u6216\u6570\u5b57 user.age=\u5e74\u9f84\u5fc5\u987b\u5728${min}\u548c${max}}\u4e4b\u95f4\uff01
2.修改struts.xml文件
在struts的头部添加如下代码(注是在struts的标签内添加):
<constant name="struts.custom.i18n.resources" value="validationMessages"></constant> <constant name="struts.i18n.encoding" value="UTF-8"></constant>3. 修改校验文件 valFrameworkRegAction-validation.xml 内容如下:
<?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> <field name="user.username"> <field-validator type="requiredstring"> <param name="trim">true</param> <!--用了国际化,user.username.requried的内容是:用户名不能为空 --> <message>${getText("user.username.requried")}</message> </field-validator> <field-validator type="regex"> <param name="expression"><![CDATA[(\w{5,50})]]></param> <!--用了国际化,user.username.regex内容是:用户名输入不合法,必须为长度为5-50之间的字母或数字 --> <message>${getText("user.username.regex")}</message> </field-validator> </field> <field name="user.password"> <field-validator type="requiredstring"> <param name="trim">true</param> <!--用了国际化,user.password.requried的内容是:密码不能为空 --> <message>${getText("user.password.requried")}</message> </field-validator> <field-validator type="regex"> <param name="expression"><![CDATA[(\w{5,50})]]></param> <!--用了国际化,user.password.regex的内容是:密码输入不合法,必须为长度为5-50之间的字母或数字 --> <message>${getText("user.password.regex")}</message> </field-validator> </field> <field name="user.age"> <field-validator type="int"> <param name="min">1</param> <param name="max">130</param> <!--user.age的内容是:年龄输入不合法 --> <message>${getText("user.age")}</message> </field-validator> </field> </validators>
以上三步后,就完成了国际化的验证校验了!
六.常用内建的较验器
1. 必填字符串校验器requiredstring
字段校验器 <field name="user.username"> <field-validator type="requiredstring"> <param name="trim">true</param> <message>用户名不能为空</message> </field-validator> </field> 非字段校验器 <validator type=”requiredstring”> <param name="fildname">user.name</param> <param name=”trim”>true</param> <message>用户名不能为空</message> </validator>2.整数范围校验器 int
filedName:用于非字段校验器,指定需要验证的属性名。
Min: 可选参数,用于指定整数最小值
Max:可选参数,用于指定最大值。
字段校验器 <field name="user.age"> <field-validator type="int"> <param name="min">1</param> <param name="max">130</param> <message>年龄输入不合法</message> </field-validator> </field> 非字段校验器 <validator type=”int”> <param name="fildname"> user.age </param> <param name=”min”>1</param> <param name=”max”>130</param> <message>年龄输入不合法</message> </validator>3.正则表达式校验器
Fieldname:非字段校验器具有该属性,指定Action属必名。
Expression:必填,指定正则表达式
caseSensitive:非必填,指定是否区分大小写,默认为true.
字段校验器 <field name="user.username"> <field-validator type="regex"> <param name="expression"><![CDATA[(\w{5,50})]]></param> <message>用户名输入不合法,必须为长度为5-50之间的字母或数字</message> </field-validator> </field> 非字段校验器 <validator type=” regex”> <param name="fildname"> user.username </param> <param name=” expression”><![CDATA[(\w{5,50})]]></param> <message>用户名输入不合法,必须为长度为5-50之间的字母或数字</message> </validator>
4.必填校验器
字段校验器 <field name="user.username"> <field-validator type="required"> <message>用户名不能为空</message> </field-validator> </field> 非字段校验器 <validator type=”required”> <param name="fildname">user.name</param> <message>用户名不能为空</message> </validator>
5.字符串度度校验器
字段校验器 <field name=”user.username”> <field-validator type=”stringlength”> <param name=”minLength”>5</param> <param name=”maxLength”>50</param> <message>用户名长度必须在5-50之间</message> </field-validator > </field > 非字段校验器 < validator type=”stringlength”> <param name=”fieldname”>user.username</param> <param name=”minLength”>5</param> <param name=”maxLength”>50</param> <message>用户名长度必须在5-50之间</message> </validator>
6.日期校验器
字段校验器 <field name="user.birthDate"> <field-validator type="date"> <param name="min">1850-01-01</param> <param name="max">2015-07-20</param> <message>出生日期输入不合法</message> </field-validator> </field> 非字段校验器 < validator type="date"> <param name="fieldname"> user.birthDate </param> <param name="min">1850-01-01</param> <param name="max">2015-07-20</param> <message>出生日期输入不合法</message> </ validator>7.网址校验器
字段校验器 <field name="user.url"> <field-validator type="url"> <message>个人首页输入不合法</message> </field-validator> </field> 非字段校验器 < validator type="url"> <param name=”fieldname”>user.url</param> <message>个人首页输入不合法</message> </validator>
8.邮件地址校验器
字段校验器 <field name="user.email"> <field-validator type="email"> <message> Email地址不合法</message> </field-validator> </field> 非字段校验器 < validator type="email"> <param name=”fieldname”> user.email </param> <message> Email地址不合法</message> </validator>
评论
5 楼
lixia0417
2010-05-27
恩,LZ,谢谢了,那我还是练习把SSh的例子改成S2sh的吧,呵呵,哎,现在s2sh整合开发的例子还真是有点少啊,大都是SSh的,呵呵
4 楼
hhr_michael
2010-05-26
哥们,你好,这本书着重s2sh的各个部分开发,而整合的例子不是很多,只有三章是整合的例子,且都是很基础的。
3 楼
lixia0417
2010-05-26
对,哥们,问一下,这本书中关于S2SH整合开发的例子多吗,就是用三个框架一起开发的例子,想多练习一下,买本书,呵呵
2 楼
hhr_michael
2010-05-25
谢谢提醒,由于只是着重校验的过程,所以这代码没有在struts.xml中配置对应的视图。
1 楼
lixia0417
2010-05-25
楼主写得不错,受教了, 不过觉得<code> public String reg(){
//实现代码省略
return null;
}
public String login(){
//实现代码省略
return null;
}
public String execute(){
return null;
} </code>
返回空,有点怪怪的,还不如直接返回“success”呢,虽然在Struts.xml中没有配置对应的视图页面;
//实现代码省略
return null;
}
public String login(){
//实现代码省略
return null;
}
public String execute(){
return null;
} </code>
返回空,有点怪怪的,还不如直接返回“success”呢,虽然在Struts.xml中没有配置对应的视图页面;
发表评论
-
struts2+hibernate3+spring2读书笔记15(核心机制-----IOC)
2010-07-21 12:16 1427... -
struts2+hibernate3+spring2读书笔记14(Spring入门)
2010-06-21 14:31 1043... -
struts2+hibernate3+spring2读书笔记13(Hibernate的事务控制)
2010-06-21 11:27 1173... -
struts2+hibernate3+spring2读书笔记12(操纵实体对象)
2010-06-21 10:07 989... -
struts2+hibernate3+spring2读书笔记11(Hibernate查询)
2010-06-15 14:25 1476... -
struts2+hibernate3+spring2读书笔记10(Hibernate配置文件)
2010-06-14 09:27 1408... -
struts2+hibernate3+spring2读书笔记9(Hibernate入门)
2010-06-10 09:41 944第1 ... -
struts2+hibernate3+spring2读书笔记8(OGNL)
2010-06-09 11:30 1044... -
struts2+hibernate3+spring2读书笔记7(Struts 2 标签库)
2010-06-08 15:15 1024... -
struts2+hibernate3+spring2读书笔记6(拦截器)
2010-06-02 16:42 895第 ... -
struts2+hibernate3+spring2读书笔记5(类型转换)
2010-05-27 11:45 958第 ... -
struts2+hibernate3+spring2读书笔记3(国际化web 应用 )
2010-05-19 10:21 1191最近买了谢星星(阿蜜果)的企业应用架构设计-Struts2+H ... -
struts2+hibernate3+spring2读书笔记2(struts2配置文件)
2010-05-17 16:45 1110最近买了谢星星(阿蜜 ... -
struts2+hibernate3+spring2读书笔记1(struts2 开发环境)
2010-05-17 10:10 1280最近买了谢星星(阿蜜果)的企业应用架构设计-Struts2+H ...
相关推荐
Struts、Spring和Hibernate是Java开发中非常重要的三个开源框架,它们各自负责Web应用程序的不同层面。Struts主要用于控制层,Spring则是一个全面的框架,涵盖了依赖注入、事务管理、AOP(面向切面编程)等多个方面...
### Struts + Hibernate + Spring 技术整合学习笔记 #### 一、技术整合概述与应用场景 在企业级应用开发中,Struts + Hibernate + Spring(简称SSH)是一种非常流行的组合方式,它们各自承担着不同的角色,共同...
- 了解 Struts2 如何与 Spring、Hibernate 等其他框架集成。 - 学习如何使用 Struts2 提供的各种标签和插件来简化开发工作。 综上所述,Struts2 是一个功能强大且灵活的 MVC 框架,适用于构建复杂的 Web 应用程序...
Struts2拥有丰富的插件系统,可以方便地与Spring、Hibernate等框架集成,如Struts2-Spring-plugin和Struts2-Hibernate-plugin。 **6. 国际化和本地化:** Struts2支持国际化和本地化,通过资源文件(如.properties...
Struts2是一个强大的Java Web...同时,了解Struts2与其他框架如Hibernate(ORM)和Spring(依赖注入)的集成也是提升开发效率的重要环节。在实际项目中,结合最佳实践和持续学习,你可以成为一个精通Struts2的开发者。
在IT行业中,SSH(Struts2 + Spring + Hibernate)是一个非常经典的Java Web开发框架组合,它为构建高效、可扩展的Web应用提供了强大的支持。在这个SSH笔记中,我们将深入探讨四个核心主题:数据验证、文件上传下载...
4. **Struts2的拦截器机制**:拦截器在Struts2中的重要性,如登录检查、日志记录、性能监控等功能的实现。 5. **OGNL(Object-Graph Navigation Language)**:解释OGNL表达式的使用,它是Struts2中用于数据绑定和...
拦截器是Struts2的一大特色,它们在Action执行前后执行特定的任务,如日志记录、权限验证、数据校验等。通过配置拦截器栈,你可以定制请求处理流程。 **六、OGNL表达式语言** Struts2使用OGNL(Object-Graph ...
总结起来,SSH经典笔记涵盖了SSH协议的基本概念,以及Struts2框架的核心组件、配置、拦截器、类型转换器、输入校验等重要知识点。结合Spring和Hibernate,我们可以构建出高效、安全的Java Web应用。
2. **拦截器**:Struts的拦截器用于在Action执行前后插入额外的逻辑,如日志、权限检查等。 3. **事务管理**:Spring的声明式事务管理如何在不同的方法间协调事务边界。 4. **DAO(Data Access Object)**:使用...
SpringMVC提供了强大的表单验证功能,可以通过注解或自定义校验器来实现。 ##### 8.7 SpringMVC异常处理 SpringMVC支持异常处理机制,可以通过控制器方法或全局异常处理器来处理异常。 ##### 8.8 SpringMVC拦截器...
尽管Struts1已经很成熟,但Struts2提供了更多功能,如更强大的拦截器机制、OGNL表达式语言、更多内置标签等,进一步提升了开发效率。 总结,"精通Struts笔记"将引导初学者逐步理解Struts框架的基本原理和使用技巧,...
从给定的文件信息来看,这里涉及到的是WebWork框架的学习笔记与配置,以及如何将WebWork与Spring、Hibernate集成在一起的示例。下面,我们将详细地解析这些知识点: ### WebWork框架简介 WebWork是一个开源的Java ...
- **Validation Framework**:Struts的验证框架允许你在服务器端对用户输入进行校验,确保数据的有效性和安全性。 在实际应用中,Struts经常与其他Java框架如Hibernate(持久层框架)和Spring(全面的企业级应用...
3. **struts2注解验证.txt**:这可能是一份关于Struts2框架中注解验证的文档或笔记,Struts2支持在Action类或字段上使用注解进行数据验证,简化了传统XML配置的复杂性。 4. **struts-default.xml**:这是Struts2的...
Struts主要负责MVC的视图层,Spring主要负责MVC的控制层,Hibernate主要负责数据持久层。下面结合给出的文件内容详细解读SSH框架的应用和相关知识点。 1. 数据库设计和表关系 在SSH框架的应用中,商城系统需要处理...
3. **易于集成**:Struts可以与其他Java EE技术如Hibernate、Spring等轻松集成,构建出功能强大的企业级应用系统。 #### 五、总结 通过上述介绍,我们可以了解到Struts框架不仅提供了简洁明了的开发方式,而且其...