`
hhr_michael
  • 浏览: 74266 次
  • 性别: Icon_minigender_1
  • 来自: 惠州
社区版块
存档分类
最新评论

struts2+hibernate3+spring2读书笔记4(数据校验器)

阅读更多
最近买了谢星星(阿蜜果)的企业应用架构设计-Struts2+Hibernate3+Spring2,想更好地学习与管理资料,现在在博客上写读书笔记,呵呵!

                             第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中没有配置对应的视图页面;

相关推荐

    Struts+Spring+Hibernate笔记文档

    Struts、Spring和Hibernate是Java开发中非常重要的三个开源框架,它们各自负责Web应用程序的不同层面。Struts主要用于控制层,Spring则是一个全面的框架,涵盖了依赖注入、事务管理、AOP(面向切面编程)等多个方面...

    sturts+hibernate+spring

    ### Struts + Hibernate + Spring 技术整合学习笔记 #### 一、技术整合概述与应用场景 在企业级应用开发中,Struts + Hibernate + Spring(简称SSH)是一种非常流行的组合方式,它们各自承担着不同的角色,共同...

    struts2综合笔记

    - 了解 Struts2 如何与 Spring、Hibernate 等其他框架集成。 - 学习如何使用 Struts2 提供的各种标签和插件来简化开发工作。 综上所述,Struts2 是一个功能强大且灵活的 MVC 框架,适用于构建复杂的 Web 应用程序...

    struts2学习资料,笔记

    Struts2拥有丰富的插件系统,可以方便地与Spring、Hibernate等框架集成,如Struts2-Spring-plugin和Struts2-Hibernate-plugin。 **6. 国际化和本地化:** Struts2支持国际化和本地化,通过资源文件(如.properties...

    Struts2_学习笔记.zip

    Struts2是一个强大的Java Web...同时,了解Struts2与其他框架如Hibernate(ORM)和Spring(依赖注入)的集成也是提升开发效率的重要环节。在实际项目中,结合最佳实践和持续学习,你可以成为一个精通Struts2的开发者。

    SSH笔记-数据验证、上传下载、避免表单重复提交、自定义拦截器

    在IT行业中,SSH(Struts2 + Spring + Hibernate)是一个非常经典的Java Web开发框架组合,它为构建高效、可扩展的Web应用提供了强大的支持。在这个SSH笔记中,我们将深入探讨四个核心主题:数据验证、文件上传下载...

    传智播客Struts2学习资料

    4. **Struts2的拦截器机制**:拦截器在Struts2中的重要性,如登录检查、日志记录、性能监控等功能的实现。 5. **OGNL(Object-Graph Navigation Language)**:解释OGNL表达式的使用,它是Struts2中用于数据绑定和...

    struts2学习资料

    拦截器是Struts2的一大特色,它们在Action执行前后执行特定的任务,如日志记录、权限验证、数据校验等。通过配置拦截器栈,你可以定制请求处理流程。 **六、OGNL表达式语言** Struts2使用OGNL(Object-Graph ...

    SSH经典笔记(毕生心血)

    总结起来,SSH经典笔记涵盖了SSH协议的基本概念,以及Struts2框架的核心组件、配置、拦截器、类型转换器、输入校验等重要知识点。结合Spring和Hibernate,我们可以构建出高效、安全的Java Web应用。

    J2EE (SSH)学习笔记

    2. **拦截器**:Struts的拦截器用于在Action执行前后插入额外的逻辑,如日志、权限检查等。 3. **事务管理**:Spring的声明式事务管理如何在不同的方法间协调事务边界。 4. **DAO(Data Access Object)**:使用...

    java常用框架学习笔记

    SpringMVC提供了强大的表单验证功能,可以通过注解或自定义校验器来实现。 ##### 8.7 SpringMVC异常处理 SpringMVC支持异常处理机制,可以通过控制器方法或全局异常处理器来处理异常。 ##### 8.8 SpringMVC拦截器...

    精通structs笔记

    尽管Struts1已经很成熟,但Struts2提供了更多功能,如更强大的拦截器机制、OGNL表达式语言、更多内置标签等,进一步提升了开发效率。 总结,"精通Struts笔记"将引导初学者逐步理解Struts框架的基本原理和使用技巧,...

    webworkwebwork笔记

    从给定的文件信息来看,这里涉及到的是WebWork框架的学习笔记与配置,以及如何将WebWork与Spring、Hibernate集成在一起的示例。下面,我们将详细地解析这些知识点: ### WebWork框架简介 WebWork是一个开源的Java ...

    struts教程指南

    - **Validation Framework**:Struts的验证框架允许你在服务器端对用户输入进行校验,确保数据的有效性和安全性。 在实际应用中,Struts经常与其他Java框架如Hibernate(持久层框架)和Spring(全面的企业级应用...

    小项目第六部分

    3. **struts2注解验证.txt**:这可能是一份关于Struts2框架中注解验证的文档或笔记,Struts2支持在Action类或字段上使用注解进行数据验证,简化了传统XML配置的复杂性。 4. **struts-default.xml**:这是Struts2的...

    传智168期 SSH网上商城笔记day41~day45

    Struts主要负责MVC的视图层,Spring主要负责MVC的控制层,Hibernate主要负责数据持久层。下面结合给出的文件内容详细解读SSH框架的应用和相关知识点。 1. 数据库设计和表关系 在SSH框架的应用中,商城系统需要处理...

    structs 入门笔记

    3. **易于集成**:Struts可以与其他Java EE技术如Hibernate、Spring等轻松集成,构建出功能强大的企业级应用系统。 #### 五、总结 通过上述介绍,我们可以了解到Struts框架不仅提供了简洁明了的开发方式,而且其...

Global site tag (gtag.js) - Google Analytics