struts2系列(二):struts2參數傳遞錯誤、struts2的輸入錯誤驗證
阿新 • • 發佈:2017-10-29
ide imp demo 瀏覽器 默認 success 數據 類型 index
一、struts2參數傳遞錯誤
1. 基本數據類型的傳遞最好使用包裝類,原因是struts 2.1之後使用基本數據類型如果參數為空會報錯
2. 日期參數的傳遞最好定義一個區域的屬性(定義locale),在struts.properties裏面定義struts.locale=zh_CN,原因是日期在不同的區域中格式不一樣,所以默認情況下日期會隨著瀏覽器的不同使用不同的區域的日期格式
二、struts2的輸入錯誤驗證
1. 在前一篇文章關於struts2系列(一)的文章中搭建的struts2的開發環境中改寫HelloWorldAction.java,在裏面復寫ActionSupport的validate()方法,然後在這個方法裏面使用ActionSupport的addFieldError()方法添加錯誤
HelloWorldAction.java:
1 package com.study.struts2.demo; 2 3 import com.opensymphony.xwork2.ActionSupport; 4 5 public class HelloWorldAction extends ActionSupport { 6 7 /** 8 * 9 */ 10 private static final long serialVersionUID = 6522825387249101847L; 11 12 private String msg;13 14 @Override 15 public void validate() { 16 if (msg == null || "".equals(msg)) { 17 super.addFieldError("msg", "信息不能為空"); 18 19 } 20 } 21 22 @Override 23 public String execute() throws Exception { 24 25 // 通過request取得jsp的內置對象 26 // this.msg="hellowrold123";27 return SUCCESS; 28 } 29 30 public String getMsg() { 31 return msg; 32 } 33 34 public void setMsg(String msg) { 35 this.msg = msg; 36 } 37 38 }
2. 在jindex.jsp頁面通過struts2的標簽<s:property value="fieldErrors[‘msg‘][0]" />獲取錯誤顯示
1 <%@ page language="java" pageEncoding="UTF-8"%> 2 <!--引入struts2的標簽 --> 3 <%@ taglib prefix="s" uri="/struts-tags"%> 4 <body> 5 <p> 6 <a href="<s:url action=‘hello‘/>">Hello World</a> 7 </p> 8 9 <!--struts2的取值標簽 value="<s:property value="msg" />"輸入正確的被保留 --> 10 <form action="hello.action"> 11 信息:<input type="text" name="msg" value="<s:property value="msg" />" /> 12 <s:property value="fieldErrors[‘msg‘][0]" /> 13 <br> <input type="submit" value="提交"> 14 </form> 15 16 <!--驗證通過後顯示 --> 17 <h2> 18 <s:property value="msg" /> 19 </h2> 20 </body> 21 </html>
3. 驗證:在瀏覽器輸入地址http://localhost:8080/TestStruts2/
3.1 首次進入頁面
3.2 什麽都不輸入,點擊提交按鈕
3.3 輸入內容再點擊提交按鈕
struts2系列(二):struts2參數傳遞錯誤、struts2的輸入錯誤驗證