框架之Struts2 处理结果类型、struts.xml标签属性及验证输入的方式

一、处理结果类型:

    public static final String SUCCESS = “success”;

public static final String NONE = “none”;

public static final String ERROR = “error”;

public static final String INPUT = “input”;

public static final String LOGIN = “login”;


二、struts.xml标签属性



三、Struts2验证输入的方式

     1.struts错误提示

   1.1 struts错误提示  
       java: addFieldError("userName", "用户名不正确!");
          addFieldError("passWord","密码不正确!");

    
      jsp: <s:fielderror>
 <s:param>userName</s:param>
<s:param>passWord</s:param>
</s:fielderror> 

 
 
     注:理解validate()方法
    
   
       1.2 struts错误提示
     
  java: addActionError("用户名或密码错误!");
      
     
 
jsp: <s:actionerror/>

     2. javaweb错误提示


         java:   request.setAttribute("userName", "用户名不正确!");
                    request.setAttribute("passWord","密码不正确!");

             
         jsp:     ${userName}
                   ${passWord}

            
     注:request对象获取 : HttpServletRequest request = ServletActionContext.getRequest();


与昨天同一工程

struts.xml实现如下:

<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
    "http://struts.apache.org/dtds/struts-2.5.dtd">
	<!-- 动态调用方式三     -->
		
<struts>
		<!-- 让struts2支持动态方法调用   在struts.properties中实现-->
 <!-- <constant name="struts.enable.DynamicMethodInvocation" value="true"/> -->
	
		<!-- 命名空间为user -->
	<package name="user" namespace="/user" extends="struts-default">
	
	<default-action-ref name="default"/>
	
		<!-- 解决struts2.5 通配符无效问题 -->
	<global-allowed-methods>regex:.*</global-allowed-methods>
	
	<!-- 访问地址http://192.168.5.7:8080/Struts/user/user_delete.do -->
		<action name="user_*" class="cn.scxh.struts.UserDemo" method="{1}">
			<result>/index.jsp</result>
			<result name="ADD">/one.jsp</result>
			<result name="UPDATE">/index.jsp</result>
			<result name="DELETE">/one.jsp</result>
			<result name="input">/add_user.jsp</result>
<!-- 重定向 默认为转发<result type="redirect" name="input">/user_add.jsp</result> -->
		</action>	
	<!-- 随便输入地址则执行默认如:http://192.168.5.7:8080/Struts/user/useaar_delete.do -->
		<action name="default">
			<result>/default.jsp</result>
		</action>
	</package>
</struts>

java类如下:

package cn.scxh.struts;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.log4j.Logger;
import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

/**
 * 一、接收参数三种方式:
 * 1.通过Action属性(将Use类写在此类中)
 * 
 * 2.domainModel  已注释
 *  利用现有model类,不需要实现implements ModelDriven<Use>
 *  1>private Use use; 添加get,set方法
 *  2>页上form表单name属性指定为 对象名.属性名 如: use.name
 *  
 * 3.实现ModelDriven接口方式
 *  1>实现ModelDriven接口
 *  2>实例化model类.如 : private User user = new User();
 *  3>表单add_user.jsp中  name值必须与Use类中的属性相同 如:name="name" name="passWord" 	
 */
public class UserDemo extends ActionSupport implements ModelDriven<Use>{
	private Logger log = Logger.getLogger(UserDemo.class);
	private Use use = new Use();
//	private Use use;
	@Override
	public String execute() throws Exception {
		
		return SUCCESS;
	}
	/**
	 * 此方法的判断语句中不需要返回INPUT,系统封装了
	 */
	@Override
	public void validate() {
		if(!"admin".equals(use.getName())){
			addFieldError("name", "用户名不正确!");
//			return INPUT;
		}else if(!"admin".equals(use.getPassWord())){
			addFieldError("passWord","密码不正确!");
//			return INPUT;
		}
	}
	
	public String add(){
		HttpServletRequest request = ServletActionContext.getRequest();
		HttpSession session = request.getSession();
		
		log.debug("name:"+use.getName()+"\npassWord:"+use.getPassWord());
		log.debug("name:"+request.getParameter("name")+
				"\npassWord:"+request.getParameter("passWord"));
/**		
		if(use.getName().equals("admin") && use.getPassWord().equals("admin")){
			return "ADD";
		}else{
			addActionError("用户名或密码错误!");
			return INPUT;
		}*/
/**		
		if(!"admin".equals(use.getName())){
//			addFieldError("name", "用户名不正确!");
			request.setAttribute("names", "用户名不正确!");
			return INPUT;
		}else if(!"admin".equals(use.getPassWord())){
//			addFieldError("passWord","密码不正确!");
			request.setAttribute("passWords","密码不正确!");
			return INPUT;
		}else{
			return "ADD";
		}*/
		return null;
		
	}
	
	
	@Override
	public Use getModel() {
		
		return use;
	}
	
//	public Use getUse() {
//		return use;
//	}
//	public void setUse(Use use) {
//		this.use = use;
//	}
}

add_user.jsp 如下:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>添加用户</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  	<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
  	<script>
  		function check(){
  			var user = $("#name").val();//获取表单元素值
  			var number = $("#number").val();
  			if(user == "" || number ==""){
  				$("#msg").text("用户和密码不能为空!");
  				return false;
  			}else{
  				return true;
  			}
  		}
  	</script>
  </head>
  
  <body>
    <form action="./user/user_add.do" method="post" enctype="application/x-www-form-urlencoded" οnsubmit="return check()">
    	用户:<input type="text" name="name" id="name"/><br> 
    	密码:<input type="text" name="passWord" id="number"/><br> 
    	<span id="msg" style="color:red;font-size:15px">${error}</span>
<!--     		<s:actionerror/> -->
    		<s:fielderror>
			    <s:param>name</s:param>
			    <s:param>passWord</s:param>
		    </s:fielderror>
		     <%--  ${names}
		      ${passWords} --%>
    		<input type="submit" value="添加"/>${message}
    </form>
  </body>
</html>


注:
java add方法中:(都注释了)

第一个if判断为    1.2 struts错误提示

第二个if判断先用了  1.1 struts错误提示    

后使用的2. javaweb错误提示     


表单验证默认方法:validate()

此方法的判断语句中不需要返回INPUT,SUCCESS等。系统封装了


ps:图片来自极客之家

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值