当前位置: 代码迷 >> JavaScript >> validator的运用,jsp回显提示信息
  详细解决方案

validator的运用,jsp回显提示信息

热度:442   发布时间:2012-11-25 11:44:31.0
validator的使用,jsp回显提示信息
UserAction.java
package com.rs.struts2.web.action;

import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;
import org.jgroups.util.List;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.rs.struts2.model.User;
/**
 * @author 
 * @version 1.0
 * 
 * */
public class UserAction extends ActionSupport implements ModelDriven<User>{
	//struts2会自动new一个user对象,只需要给它setter和getter
	private User user=new User();
	private int a = 0;
	
	public String add(){
		addFieldError("add_success",getText("add.success"));
		addActionError("成功了");
		addActionMessage("成功了2");
		return "success";
	}
	public String addUser(){
		System.out.println("___________________");
		addFieldError("add_success",getText("add.success"));
		addActionError("成功了");
		addActionMessage("成功了2");
		return "success";
	}
	
	public String update(){
		addFieldError("update_success",getText("update.success"));
		return "success";
	}
	public String del(){
		HttpServletRequest request = ServletActionContext.getRequest();
		
		ArrayList list = new ArrayList();
		for (int i = 0; i <10; i++) {
			list.add(i);
		}
		
		request.setAttribute("name", "zheng-gang");
		request.setAttribute("list", list);
		request.setAttribute("number1", 10);
		
		addFieldError("del_success",getText("del.success"));
		return "success";
	}
	
	public String list(){
		addFieldError("list_success",getText("list.success"));
		return "success";
	}
	public User getModel() {
		return this.user;
	}
}



UserAction-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="username">  
   <field-validator type="requiredstring">  
    <param name="trim">true</param>  
    <message key="requiredadd.name"/> 
   </field-validator>
</field>
<field name="pwd">
<field-validator type="requiredstring">
	<param name="trim">true</param>
	<message key="requiredadd.password"></message>
</field-validator>
</field>
</validators>



ResourceMessages.properties
requiredadd.name = 用户名不能为空
requiredadd.password = 密码不能为空
add.success= 添加成功


struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" 
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
	 <constant name="struts.devMode" value="true" />
	 <constant name="struts.custom.i18n.resources" value="ResourceMessages" />
	 
	 <package name="User" namespace="/user" extends="struts-default">
        <action name="User_*" class="com.rs.struts2.web.action.UserAction" method="{1}">
        	<!-- 只允许add方法和update方法使用校验器 -->
        	<interceptor-ref name="defaultStack">
        		<param name="validation.excludeMethods">*</param>
        		<param name="validation.includeMethods">add,update,addUser</param>
        	</interceptor-ref>
        	<result name="success">/user_success.jsp</result>
        	<result name="input">/addUser.jsp</result>
        </action>
    </package>
</struts>




jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!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>
  <hr/>
  <form action="<%=basePath%>user/User_addUser" method="post">
		<table>
			<tr>
				<td>姓名:</td>
				<td>
					<input type="text" name="username" msg="add.username">
				</td>
				<td>
					<s:fielderror><s:param name="username">username</s:param></s:fielderror>
					
				</td>
				
			</tr>
			<tr>
				<td>密码:</td>
				<td><input type="password" name="pwd" ></td>
				<td><s:fielderror><s:param name="pwd">pwd</s:param></s:fielderror></td>
			</tr>
			<tr><td>年龄:</td><td><input type="text" name="age" ></td><td></td></tr>
			<tr><td>电话:</td><td><input type="text" name="tel" ></td><td></td></tr>
			<tr><td>地址:</td><td><input type="text" name="address" ></td><td></td></tr>
			<tr><td>邮箱:</td><td><input type="text" name="email" ></td><td></td></tr>
			<tr><td><input type="submit" value="添加" ></td><td></td><td></td></tr>
		</table>
	</form>
</body>
</html>


login_success.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>Success</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
  </head>
  
  <body>
  	<s:actionerror/><Br><s:actionmessage/><Br><s:fielderror><s:param>add_success</s:param></s:fielderror>
    <center><p><s:fielderror/></p></center> <br>
    <font color='red'>EL表达式 :格式为$ {  }</font><br>
     ${name}<br><hr>
    <font color='red'>c:out :输出值.escapeXml属性是过滤特殊字符(布尔类型的值);default属性是在value的值为null的情况下输出的值</font><br>
    <c:out value="${name}" default="无数据" escapeXml="false"></c:out><br>
    <c:out value="${null}" default="无数据" escapeXml="false"></c:out><br>
    <c:out value="${'&lt;'}" default="无数据" escapeXml="true"></c:out><br>
    <c:out value="${'&lt;'}" default="无数据" escapeXml="false"></c:out><br><hr>
    <font color='red'>c:forEach :items属性中可放置数组或集合对象,var属性里放置迭代后的对象</font><br>
    <c:forEach items="${list}" var="num">
    		&nbsp;&nbsp;${num}
    </c:forEach>
    <br>
    <c:forEach begin="1" end="11" step="2" var="n" >
    	&nbsp;&nbsp;${n}
    </c:forEach>
    <br>
    <c:forEach begin="1" end="90" step="5" var="n" >
    	&nbsp;&nbsp;${n}
    	<c:if test="${n>50}" var="sti">
    		sti返回true
    	</c:if>
    </c:forEach>
    <br><hr>
     <font color='red'>c:choose :结合c:when,c:otherwise 相当于java中的if/else组合</font><br>
    <c:choose>
    	<c:when test="${2>1}">
    		算对了
    	</c:when>
    	<c:otherwise>
    		算错了
    	</c:otherwise>
    </c:choose>
    <br><hr>
    <font color='red'>c:forTokens :类似java中的split截取字符串 ,delims属性是表示要截取的分隔符,var属性表示分隔后的单一对象</font><br>
    <c:forTokens items="speed,net,network,apple,iphone,android" delims="," var="nb">
    	${nb}
    </c:forTokens>
  </body>
</html>

  相关解决方案