亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 入門 08 - actionerror與actionmessage - javaworld@tw.htm

?? struts快速入門文章
?? HTM
?? 第 1 頁 / 共 2 頁
字號:
?<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0071)http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=481 -->
<HTML><HEAD><TITLE>入門 08 - ActionError與ActionMessage - JAVAWORLD@TW</TITLE>
<META http-equiv=Content-Type content="text/html; charset=utf-8"><!-- CONFL-BEGIN standardHeader -->
<META http-equiv=Pragma content=no-cache>
<META http-equiv=Expires content=-1>
<SCRIPT language=javascript>  var contextPath = '/confluence';</SCRIPT>
<LINK 
href="入門 08 - ActionError與ActionMessage - JAVAWORLD@TW.files/main-action.css" 
type=text/css rel=stylesheet><LINK href="/confluence/images/icons/favicon.ico" 
rel="shortcut icon"><LINK href="/confluence/images/icons/favicon.png" 
type=image/png rel=icon>
<SCRIPT 
src="入門 08 - ActionError與ActionMessage - JAVAWORLD@TW.files/effects.js"></SCRIPT>
<!-- CONF-END standardHeader -->
<META content="MSHTML 6.00.2800.1491" name=GENERATOR></HEAD>
<BODY onload=placeFocus()>
<DIV id=Content>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
  <TBODY>
  <TR>
    <TD class=logocell width="60%" rowSpan=2>
      <DIV class=spacenametitle><A 
      href="http://www.javaworld.com.tw/confluence/display/opensrc"><IMG 
      src="入門 08 - ActionError與ActionMessage - JAVAWORLD@TW.files/confluence_logo.gif" 
      align=bottom border=0></A> <A 
      href="http://www.javaworld.com.tw/confluence/display/opensrc">OpenSource 
      Project</A></DIV></TD>
    <TD vAlign=top align=right width="40%">
      <TABLE cellSpacing=1 cellPadding=2 align=right bgColor=#ffffff border=0>
        <TBODY>
        <TR>
          <TD class=navItem onmouseover="this.className='navItemOver'" 
          onclick="window.document.location='/confluence/'" 
          onmouseout="this.className='navItem'" vAlign=center noWrap 
          align=middle>&nbsp;&nbsp; <A title="Go to the Confluence Dashboard" 
            accessKey=h onclick="return false" 
            href="http://www.javaworld.com.tw/confluence/"><U>H</U>OME</A> 
            &nbsp;&nbsp;</TD>
          <TD class=navItem onmouseover="this.className='navItemOver'" 
          onclick="window.document.location='/confluence/spaces/listspaces.action'" 
          onmouseout="this.className='navItem'" vAlign=center noWrap 
          align=middle>&nbsp;&nbsp; <A title="The spaces available for you" 
            accessKey=s onclick="return false" 
            href="http://www.javaworld.com.tw/confluence/spaces/listspaces.action"><U>S</U>PACES</A> 
            &nbsp;&nbsp;</TD></TR></TBODY></TABLE></TD></TR>
  <TR>
    <TD vAlign=bottom align=right><SPAN class=smalltext><A 
      href="http://www.javaworld.com.tw/confluence/login.action?os_destination=/pages/viewpage.action?pageId=481">Log 
      In</A> &nbsp; </SPAN><A 
      href="http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=481&amp;decorator=printable"><IMG 
      title="View a printable version of the current page." height=16 
      alt="View a printable version of the current page." hspace=1 
      src="入門 08 - ActionError與ActionMessage - JAVAWORLD@TW.files/print_16.gif" 
      width=16 align=absMiddle vspace=1 border=0></A> <A 
      href="http://confluence.atlassian.com/display/DOC"><IMG 
      title="Get help from the Confluence website." height=16 
      alt="Get help from the Confluence website." hspace=1 
      src="入門 08 - ActionError與ActionMessage - JAVAWORLD@TW.files/help_16.gif" 
      width=16 align=absMiddle vspace=1 border=0></A> </TD></TR></TBODY></TABLE><!-- CONF-BEGIN breadcrumbsAndSearch -->
<DIV class=breadcrumbs width="100%">
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
  <TBODY>
  <TR>
    <TD>&nbsp; Location: <A 
      href="http://www.javaworld.com.tw/confluence/dashboard.action">Dashboard</A> 
      &gt; <A 
      href="http://www.javaworld.com.tw/confluence/spaces/viewspacesummary.action?key=opensrc">opensrc</A> 
      &gt; <A 
      href="http://www.javaworld.com.tw/confluence/pages/listpages.action?key=opensrc">Pages</A> 
      &gt; <A 
      href="http://www.javaworld.com.tw/confluence/display/opensrc/Home">Home</A> 
      &gt; <A 
      href="http://www.javaworld.com.tw/confluence/display/opensrc/Struts">Struts</A> 
      &gt; <A 
      href="http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=1958">Struts入門</A> 
      &gt; <A 
      href="http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=481">入門 
      08 - ActionError與ActionMessage</A> </TD>
    <FORM name=searchForm action=/confluence/dosearchsite.action 
    method=get><INPUT type=hidden value=true name=quickSearch> 
    <TD vAlign=bottom align=right width=200><A style="TEXT-DECORATION: none" 
      href="http://www.javaworld.com.tw/confluence/searchsite.action"><U>Q</U>uick 
      <U>Search</U></A>:<INPUT accessKey=q size=10 name=searchQuery.queryString><INPUT type=submit value=Go><BR><IMG height=1 
      src="入門 08 - ActionError與ActionMessage - JAVAWORLD@TW.files/spacer.gif" 
      width=200></TD></FORM></TR></TBODY></TABLE></DIV><!-- CONF-END breadcrumbsAndSearch -->
<TABLE cellSpacing=0 cellPadding=5 width="100%" border=0>
  <TBODY>
  <TR>
    <TD>
      <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
        <TBODY>
        <TR>
          <TD class=pagebody vAlign=top>
            <DIV class=pageheader><SPAN class=pagetitle>入門 08 - 
            ActionError與ActionMessage</SPAN> </DIV>
            <SCRIPT language=javascript>        function toggle(id) {            var oldAttachmentVersionsBlock = document.getElementById('attachment' + id);            with (oldAttachmentVersionsBlock.style)            {                if ( display == "none" )                    display = ""                else                    display = "none"            }            var arrowIcon = document.getElementById('arrow' + id);            with (arrowIcon)            {                if (src != null && (src.indexOf('/confluence/images/icons/arrow_closed_active_16.gif') != -1 || src.indexOf('/confluence/images/icons/arrow_closing_active_16.gif') != -1))                {                    src = '/confluence/images/icons/arrow_opening_active_16.gif';                }                else                {                    src = '/confluence/images/icons/arrow_closing_active_16.gif';                }            }        }        </SCRIPT>

            <DIV class=pagesubheading>Last changed on Oct 27, 2004 by <A 
            href="http://www.javaworld.com.tw/confluence/display/~koji">koji 
            lin</A> 
            </DIV><!-- page content --> ActionForm是表單的物件化,有關於表單資料的完整性檢查工作該在其中進行,例如使用者是否填寫了所有的欄位,ActionForm中所有的屬性是否被設定了,您可以重新定義ActionForm的validate()方法來進行這項工作,例如: 

            <DIV class=code 
            style="BORDER-TOP-STYLE: solid; BORDER-RIGHT-STYLE: solid; BORDER-LEFT-STYLE: solid; BORDER-BOTTOM-STYLE: solid">
            <DIV class=codeHeader 
            style="BORDER-BOTTOM-STYLE: solid"><B>UserForm.java</B></DIV>
            <DIV class=codeContent><PRE><SPAN class=java-keyword>package</SPAN> onlyfun.caterpillar;

<SPAN class=java-keyword>import</SPAN> javax.servlet.http.*;
<SPAN class=java-keyword>import</SPAN> org.apache.struts.action.*;

<SPAN class=java-keyword>public</SPAN> class UserForm <SPAN class=java-keyword>extends</SPAN> ActionForm {
    <SPAN class=java-keyword>protected</SPAN>&nbsp;<SPAN class=java-object>String</SPAN> name;
    <SPAN class=java-keyword>protected</SPAN>&nbsp;<SPAN class=java-object>String</SPAN> password;

    <SPAN class=java-keyword>public</SPAN> void setName(<SPAN class=java-object>String</SPAN> name) {
        <SPAN class=java-keyword>this</SPAN>.name = name;
    }
    <SPAN class=java-keyword>public</SPAN> void setPassword(<SPAN class=java-object>String</SPAN> password) {
        <SPAN class=java-keyword>this</SPAN>.password = password;
    }
    <SPAN class=java-keyword>public</SPAN>&nbsp;<SPAN class=java-object>String</SPAN> getName() {
        <SPAN class=java-keyword>return</SPAN> name;
    }
    <SPAN class=java-keyword>public</SPAN>&nbsp;<SPAN class=java-object>String</SPAN> getPassword() {
        <SPAN class=java-keyword>return</SPAN> password;
    }
    <SPAN class=java-keyword>public</SPAN> void reset(ActionMapping mapping, HttpServletRequest req) {
        name = <SPAN class=java-keyword>null</SPAN>;
        password = <SPAN class=java-keyword>null</SPAN>;
    }

    <SPAN class=java-keyword>public</SPAN> ActionErrors validate(ActionMapping mapping,
                                 HttpServletRequest request) {
        ActionErrors errors = <SPAN class=java-keyword>new</SPAN> ActionErrors();

        <SPAN class=java-keyword>if</SPAN>(getName() == <SPAN class=java-keyword>null</SPAN> || getUsername().length() &lt; 1) {
            errors.add(<SPAN class=java-quote>"name"</SPAN>,<SPAN class=java-keyword>new</SPAN> ActionError(<SPAN class=java-quote>"error.name.required"</SPAN>));
        }
        <SPAN class=java-keyword>if</SPAN>(getPassword() == <SPAN class=java-keyword>null</SPAN> || getPassword().length() &lt; 1) {
            errors.add(<SPAN class=java-quote>"password"</SPAN>,<SPAN class=java-keyword>new</SPAN> ActionError(<SPAN class=java-quote>"error.password.required"</SPAN>));
        }

        <SPAN class=java-keyword>return</SPAN> errors;
    }
}</PRE></DIV></DIV><BR> 當使用者發送表單,而表單中有欄位沒有填寫時,則請求中會包括參數名稱,但是值為空字串,如果ActionForm具有某些屬性,而表單並沒有發送對應的參數,則不會設定ActionForm中對應的屬性,這些屬性將為null,我們的validate()中主要在檢查這兩個情況。<BR> validate()方法會傳回ActionErrors物件,ActionErrors可以儲存ActionError的訊息,每一個 
            ActionError會查詢資源檔中的key-value對應,當validate()丟回ActionErrors物件時, 
            ActionServlet就不會繼續進行接下來的工作,而是導回structs-config.xml所設定的位置,例如: 
            <DIV class=code 
            style="BORDER-TOP-STYLE: solid; BORDER-RIGHT-STYLE: solid; BORDER-LEFT-STYLE: solid; BORDER-BOTTOM-STYLE: solid">
            <DIV class=codeHeader 
            style="BORDER-BOTTOM-STYLE: solid"><B>struts-config.xml</B></DIV>
            <DIV class=codeContent><PRE>&lt;global-forwards&gt;
        &lt;forward
            name=<SPAN class=java-quote>"welcome"</SPAN>
            path=<SPAN class=java-quote>"/Welcome.<SPAN class=java-keyword>do</SPAN>"</SPAN>/&gt;
    &lt;/global-forwards&gt;
                                                                                               
    &lt;form-beans&gt;
        &lt;form-bean
            name=<SPAN class=java-quote>"userForm"</SPAN>
            type=<SPAN class=java-quote>"onlyfun.caterpillar.UserForm"</SPAN>/&gt;
    &lt;/form-beans&gt;
                                                                                               
    &lt;action-mappings&gt;
        &lt;action
            path=<SPAN class=java-quote>"/Welcome"</SPAN>
            type=<SPAN class=java-quote>"org.apache.struts.actions.ForwardAction"</SPAN>
            parameter=<SPAN class=java-quote>"/pages/Welcome.jsp"</SPAN>/&gt;
                                                                                               
        &lt;action
            path=<SPAN class=java-quote>"/LoginAction"</SPAN>
            type=<SPAN class=java-quote>"onlyfun.caterpillar.LoginAction"</SPAN>
            name=<SPAN class=java-quote>"userForm"</SPAN>
            validate=<SPAN class=java-quote>"<SPAN class=java-keyword>true</SPAN>"</SPAN>
            input=<SPAN class=java-quote>"/pages/Welcome.jsp"</SPAN>&gt;
            &lt;forward name=<SPAN class=java-quote>"greeting"</SPAN> path=<SPAN class=java-quote>"/pages/greeting.jsp"</SPAN>/&gt;
        &lt;/action&gt;
    &lt;/action-mappings&gt;</PRE></DIV></DIV><BR> 為了要能使用validate()方法,&lt;action&gt;中的validate屬性必須設定為true,而input屬性也是必要的,當validate()傳回ActionErrors時,就會forward至input屬性所設定的位置,ActionErrors中的訊息,我們可以使用&lt;html:errors/&gt;標籤來顯示,待會就會看到。<BR> ActionForm中驗證了屬性為null及空字串的可能,這是資料完整性的驗證,接下來我們要驗證資料的正確性,是否符合我們所設定的名稱與密碼,我們改寫前一個主題的LoginAction,看看寫法有何不同: 

            <DIV class=code 
            style="BORDER-TOP-STYLE: solid; BORDER-RIGHT-STYLE: solid; BORDER-LEFT-STYLE: solid; BORDER-BOTTOM-STYLE: solid">
            <DIV class=codeHeader 
            style="BORDER-BOTTOM-STYLE: solid"><B>LoginAction.java</B></DIV>
            <DIV class=codeContent><PRE><SPAN class=java-keyword>package</SPAN> onlyfun.caterpillar;

<SPAN class=java-keyword>import</SPAN> javax.servlet.http.*;
<SPAN class=java-keyword>import</SPAN> org.apache.struts.action.*;
<SPAN class=java-keyword>import</SPAN> org.apache.commons.beanutils.*;

<SPAN class=java-keyword>public</SPAN> class LoginAction <SPAN class=java-keyword>extends</SPAN> Action {
    <SPAN class=java-keyword>public</SPAN> ActionForward execute(ActionMapping mapping,
                                 ActionForm form,
                                 HttpServletRequest request,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人高清电影在线| 成人激情黄色小说| 91国内精品野花午夜精品| 日韩电影免费一区| 不卡高清视频专区| 日韩欧美久久久| 亚洲美女偷拍久久| 国产最新精品精品你懂的| 欧美写真视频网站| 国产精品欧美综合在线| 精东粉嫩av免费一区二区三区| 色综合久久六月婷婷中文字幕| 久久噜噜亚洲综合| 午夜精品一区二区三区电影天堂 | 狠狠色2019综合网| 欧美性欧美巨大黑白大战| 欧美激情一区二区三区蜜桃视频 | 亚洲最大的成人av| 成人黄色在线视频| 国产亚洲欧美日韩在线一区| 日产精品久久久久久久性色| 欧美中文字幕一区二区三区亚洲| 国产女同互慰高潮91漫画| 久久精品国产**网站演员| 欧洲国内综合视频| 亚洲精品免费播放| 99国产精品久久久久久久久久| 久久久综合网站| 极品瑜伽女神91| 日韩免费福利电影在线观看| 婷婷国产在线综合| 91精品国产综合久久婷婷香蕉| 亚洲在线成人精品| 欧美网站一区二区| 亚洲一区免费观看| 欧美日韩在线观看一区二区| 亚洲午夜三级在线| 欧美三级乱人伦电影| 亚洲综合一二区| 欧美精品乱码久久久久久按摩| 亚洲超碰97人人做人人爱| 欧美日韩国产不卡| 丝袜美腿高跟呻吟高潮一区| 欧美一卡二卡在线| 美女视频第一区二区三区免费观看网站 | 欧美一级艳片视频免费观看| 日韩电影在线看| 日韩欧美色综合网站| 精品一区二区三区不卡| 国产午夜精品理论片a级大结局| 国产a精品视频| 国产精品不卡视频| 欧美亚洲综合在线| 日日摸夜夜添夜夜添亚洲女人| 日韩欧美另类在线| 国产iv一区二区三区| 亚洲欧美日韩国产手机在线 | 亚洲精品国产无天堂网2021| 色一情一乱一乱一91av| 婷婷国产v国产偷v亚洲高清| 精品噜噜噜噜久久久久久久久试看| 国产一区二区成人久久免费影院| 中文字幕色av一区二区三区| 在线日韩一区二区| 久久精品国产精品亚洲红杏 | 亚洲国产欧美日韩另类综合| 欧美一区午夜视频在线观看| 国产成人精品aa毛片| 一区二区免费在线播放| 欧美大肚乱孕交hd孕妇| 成人av在线一区二区三区| 五月天丁香久久| 国产精品视频一区二区三区不卡| 国模套图日韩精品一区二区| 精品少妇一区二区三区视频免付费| 一区二区中文视频| 97久久超碰精品国产| **网站欧美大片在线观看| 欧美日本国产视频| 国产成人精品一区二区三区四区| 亚洲精品视频在线观看网站| 欧美精品一区二区三区四区 | 国产一区在线观看麻豆| 色噜噜狠狠成人中文综合| 久久精品国内一区二区三区| 中文字幕亚洲一区二区va在线| 日韩一区二区三区免费看 | 久久爱www久久做| 亚洲精品视频免费观看| 久久久久久久免费视频了| 在线观看日韩毛片| 久久久国产精品麻豆 | 国产精品久久午夜| 欧美一区二区在线免费观看| a亚洲天堂av| 香蕉成人啪国产精品视频综合网| 精品国产91九色蝌蚪| 欧美日韩国产成人在线免费| 99久久精品99国产精品| 狠狠色丁香婷综合久久| 日韩av中文在线观看| 一级日本不卡的影视| 精品久久久三级丝袜| 欧美军同video69gay| 在线观看免费成人| 成人免费三级在线| 精品综合久久久久久8888| 日日夜夜精品视频天天综合网| 亚洲精品一二三| 日韩美女视频19| 中文字幕成人在线观看| 久久久久久免费毛片精品| 欧美一区二区三区思思人| 欧美精品久久一区| 欧美性极品少妇| 欧美影院一区二区| 在线欧美一区二区| 欧美色综合天天久久综合精品| 色综合激情五月| 欧美在线综合视频| 在线视频欧美精品| 欧美军同video69gay| 欧美精品aⅴ在线视频| 欧美精品一二三| 欧美欧美欧美欧美首页| 欧美精品一级二级| 精品三级在线看| 国产三区在线成人av| 中文字幕免费观看一区| 国产精品久久久久毛片软件| 成人欧美一区二区三区在线播放| 国产精品嫩草99a| 亚洲同性同志一二三专区| 一区二区三区蜜桃网| 亚洲第一福利一区| 美洲天堂一区二卡三卡四卡视频| 久久精品72免费观看| 国产激情视频一区二区在线观看| 国内精品视频666| av一二三不卡影片| 欧美午夜精品理论片a级按摩| 337p亚洲精品色噜噜狠狠| 日韩一区二区三区视频在线 | 国产精品1024| av激情亚洲男人天堂| 欧美色视频在线观看| 91精品午夜视频| 精品福利av导航| 亚洲人午夜精品天堂一二香蕉| 亚洲精品国产一区二区精华液 | 欧美性一级生活| 日韩欧美国产一区二区在线播放| 国产亚洲欧美日韩在线一区| 夜色激情一区二区| 国精品**一区二区三区在线蜜桃| 国产成人99久久亚洲综合精品| 91亚洲国产成人精品一区二区三| 在线播放亚洲一区| 欧美国产亚洲另类动漫| 亚洲第一搞黄网站| 99综合电影在线视频| 成人中文字幕电影| 欧美久久久久中文字幕| 91精品国产综合久久精品app| 首页亚洲欧美制服丝腿| 欧美成人a视频| voyeur盗摄精品| 欧美大片一区二区| 亚洲另类春色国产| 国产精品正在播放| 91福利在线免费观看| 欧美精品一区二区久久婷婷| 亚洲人吸女人奶水| 国产精品911| 久久免费午夜影院| 日韩精品免费专区| 99精品一区二区三区| 欧美日韩视频在线第一区| 久久久久久久免费视频了| 午夜精品一区二区三区电影天堂| 成人精品视频一区二区三区| 91精品国产麻豆国产自产在线 | 成人在线综合网| 精品国产乱码久久久久久久 | 日本一区二区三级电影在线观看| 日韩中文欧美在线| 91成人国产精品| 中文字幕一区在线观看视频| 国产东北露脸精品视频| 在线电影一区二区三区| 午夜视频在线观看一区二区| 一本色道亚洲精品aⅴ| 国产精品嫩草99a| 成人妖精视频yjsp地址| 久久久不卡网国产精品二区 | 天天色天天操综合| 欧美亚洲一区二区在线| 亚洲免费高清视频在线| 99久久久久免费精品国产| 中文字幕在线观看一区|