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

《struts---利用struts的标签,实现简单的表单提交及校验》

 
阅读更多

部分不重要的代码,未复制!

<!--注册页面-->

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%> 
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
 
<html> 
	<head>
		<title>用户注册</title>
	</head>
	<body>
	<!-- 这里用的是struts的标签,它给我们提供了很多的便利 -->
		<html:form action="/UserMain">
			姓名 : <html:text property="name"/><html:errors property="name"/><br/>
			<!-- 在回显时,为了数据安全就将密码清空了,只需将其value值设为""即可 -->
			密码 : <html:password property="password" value=""/><html:errors property="password"/><br/>
			确认密码 : <html:password property="password2" value=""/><html:errors property="password2"/><br/>
			<html:submit value="提交"/>
		</html:form>
	</body>
</html>
//用于储存用户信息的FormBean
/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.fenghuo.struts.web.forms;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

/** 
 * MyEclipse Struts
 * Creation date: 10-07-2012
 * 
 * XDoclet definition:
 * @struts.form name="userForm"
 */
public class UserForm extends ActionForm {
	/**
	 * 
	 */
	private static final long serialVersionUID = 8184190723003145234L;

	/** password2 property */
	private String password2;

	/** name property */
	private String name;

	/** password property */
	private String password;

	/*
	 * Generated Methods
	 */

	/** 
	 * Method validate
	 * @param mapping
	 * @param request
	 * @return ActionErrors
	 */
	public ActionErrors validate(ActionMapping mapping,
			HttpServletRequest request) {
		ActionErrors errors = new ActionErrors();
		
		if (!password.equals(password2)){
			errors.add("password", new ActionMessage("<font color='red'>密码不相同</font>", false));
		}
		if(name.equals("") || name == null){
			errors.add("name", new ActionMessage("<font color='red'>用户名不能为空</font>", false));
		}
		return errors;
	}

	/** 
	 * Method reset
	 * @param mapping
	 * @param request
	 */
	public void reset(ActionMapping mapping, HttpServletRequest request) {
		// TODO Auto-generated method stub
	}

	/** 
	 * Returns the password2.
	 * @return String
	 */
	public String getPassword2() {
		return password2;
	}

	/** 
	 * Set the password2.
	 * @param password2 The password2 to set
	 */
	public void setPassword2(String password2) {
		this.password2 = password2;
	}

	/** 
	 * Returns the name.
	 * @return String
	 */
	public String getName() {
		return name;
	}

	/** 
	 * Set the name.
	 * @param name The name to set
	 */
	public void setName(String name) {
		this.name = name;
	}

	/** 
	 * Returns the password.
	 * @return String
	 */
	public String getPassword() {
		return password;
	}

	/** 
	 * Set the password.
	 * @param password The password to set
	 */
	public void setPassword(String password) {
		this.password = password;
	}
}
//注册成功进行跳转的action
/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.fenghuo.struts.web.actions;

import java.io.UnsupportedEncodingException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.fenghuo.struts.web.forms.UserForm;

/** 
 * MyEclipse Struts
 * Creation date: 10-07-2012
 * 
 * XDoclet definition:
 * @struts.action path="/UserRegister" name="userForm" scope="request" validate="true"
 * @struts.action-forward name="main.jsp" path="/WEB-INF/jsp/main.jsp" redirect="true"
 */
public class UserMain extends Action {
	/*
	 * Generated Methods
	 */

	/** 
	 * Method execute
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward
	 */
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		
		return mapping.findForward("success");
	}
}
<!--主页面-->

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title>主界面</title>
    
  </head>
  
  <body>
     <br>
     
     ${userForm.name }	欢迎来到主界面!
  </body>
</html>


<!--struts-config.xml-->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
  <data-sources />
  
  <form-beans >
    <form-bean name="userForm" type="com.fenghuo.struts.web.forms.UserForm" />
  </form-beans>

  <global-exceptions />
  <global-forwards />
  
  <action-mappings>
    <!--注释部分内容用不到
	<action path="/Test" type="com.fenghuo.struts.test.Test">
		<forward name="success" path="/WEB-INF/jsp/test.jsp"></forward>
	</action>
	-->
    <action
      attribute="userForm"
      name="userForm"
      path="/UserMain"
      scope="request"
      type="com.fenghuo.struts.web.actions.UserMain"
      input="/WEB-INF/jsp/register.jsp">
      <set-property property="cancellable" value="true" />
      <forward
        name="success"
        path="/WEB-INF/jsp/main.jsp"/>
    </action>
    
    <action path="/UserRegUI" type="com.fenghuo.struts.web.actions.UserRegUI">
      <set-property property="cancellable" value="true" />
      <forward name="success" path="/WEB-INF/jsp/register.jsp" />
    </action>
  </action-mappings>
  
  <!--
  <message-resources parameter="com.fenghuo.ApplicationResources" />
  -->
</struts-config>





1.用户名为空时报错,返回注册页面


2.密码不相同是报错,返回。用户名回显。


3.用户名为空,且密码不相同。

4.注册,登陆成功。



在struts中,将数据封装成FormBean时会调用里面的validate方法,因此可以将数据的校验。放在这个方法中。这个方法会返回错误,我们可以用struts提供的标签显示相应的错误。FormBean会自动封装。默认存放到Session域中。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics