`
zhengbocong
  • 浏览: 13757 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

struts的validator框架

阅读更多

依赖包

-- jakarta-oro.jar:提供了一组处理文本的类,具有文本替换、过滤和分割等功能

-- commons-validator.jar:提供了一个简单的、可扩张的验证框架,包含了通用的验证方法和验证规则

基于XML配置,在WEB-INF目录下

-- validator-rules.xml:包含了一组通用的验证规则,对所有的Struts应用都适用

-- validation.xmlvalidator框架的第二个配置文件。这个是针对于某个具体的Struts应用,需要开发人员来创建,它可以为应用中的ActionForm配置所需要的验证规则,取代ActionForm类中以编程方式来实现验证逻辑

 

struts-config.xml中配置

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE struts-config PUBLIC  
    "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"  
    "http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
	<form-beans>
		<form-bean name="loginForm" type="com.cong.web.LoginForm"></form-bean>
	</form-beans>
	<action-mappings>
		<action path="/toLogin" name="loginForm" type="com.cong.web.LoginAction" parameter="method" scope="request">
			<forward name="view" path="/WEB-INF/jsp/login.jsp" />
		</action>
		<!-- validate="true" 开启验证 -->
		<action path="/login" input="/login" name="loginForm" type="com.cong.web.LoginAction" parameter="method" validate="true" scope="request">
			<forward name="view" path="/WEB-INF/jsp/main.jsp" />
		</action>
	</action-mappings>

	<!-- 国际化资源文件 -->
	<message-resources parameter="com.cong.login"></message-resources>

	<!-- 加入验证插件 -->
	<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
		<set-property property="pathnames" value="/org/apache/struts/validator/validator-rules.xml,
                /WEB-INF/validator/validator-login.xml" />
	</plug-in>
</struts-config>

 

LoginAction.java

 

public class LoginAction extends DispatchAction {
	public ActionForward init(ActionMapping mapping, ActionForm form, HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		return mapping.findForward("view");
	}
	public ActionForward login(ActionMapping mapping, ActionForm form, HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		//TODO print
		System.out.println("into login");
		LoginForm loginForm = (LoginForm)form;
		System.out.println(loginForm.getUserName());
		System.out.println(loginForm.getPassword());
		return mapping.findForward("view");
	}
}

 

 

LoginForm.java

public class LoginForm extends ActionForm {
	private static final long serialVersionUID = 1L;
	
	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;
	}
}

 

web.xml

<web-app xmlns:web="http://xmlns.jcp.org/xml/ns/javaee">
  <display-name>Login</display-name>
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>
			org.apache.struts.action.ActionServlet
		</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config/struts-config.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
</web-app>

 

validator-login.xml

	<formset>
		<form name="loginForm">
			<field property="userName" depends="required">
				<arg0 key="login.label.userName" />
				<!-- <msg name="required" key="error.userName" /> -->
			</field>
			<field property="password" depends="required,minlength">
				<arg0 key="login.label.password" />
				<arg1 key="${var:minlength}" resource="false" />
				<!-- <msg name="required" key="error.password" />
				<msg name="minlength" key="error.password.minlength" /> -->
				<var>
					<var-name>minlength</var-name>
					<var-value>6</var-value>
				</var>
			</field>
		</form>
	</formset>

 

login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<bean:define id="loginForm" name="loginForm" type="com.cong.web.LoginForm"></bean:define>

<!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>Insert title here</title>
</head>
<body>
	<html:form action="login.do?method=login">
		<div><html:errors/></div>
		<table>
			<tr>
				<td><bean:message key="login.label.userName" /></td>
				<td><html:text property="userName" maxlength="10" ></html:text></td>
			</tr>
			<tr>
				<td><bean:message key="login.label.password" /></td>
				<td><html:password property="password" maxlength="10" ></html:password></td>
			</tr>
			<tr>
				<td colspan="2" align="right">
					<input type="button" value="提交" onclick="javascript:submitForm();" />
				</td>
			</tr>
		</table>
	</html:form>
<script language="Javascript">

function submitForm()
{
  if (validateLoginForm(document.loginForm)) {
    document.loginForm.submit();
  }
}

</script>
	<html:javascript formName="loginForm" />
</body>
</html>

 

main.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<!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>main.jsp</title>
</head>
<body>
	<table>
		<tr>
			<td>userName:</td>
			<td><bean:write name="loginForm" property="userName" /></td>
		</tr>
		<tr>		
			<td>password:</td>
			<td><bean:write name="loginForm" property="password" /></td>
		</tr>
	</table>
</body>
</html>

 

 

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics