亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
国产另类ts人妖一区二区| 日韩av一二三| 欧美经典一区二区| 精品欧美一区二区在线观看| 欧美一二三四区在线| 91精品久久久久久久91蜜桃| 欧美一级片在线| 2022国产精品视频| 久久久国产精品麻豆| 国产色一区二区| 亚洲欧美日韩国产综合| 一区二区久久久| 亚洲综合男人的天堂| 午夜天堂影视香蕉久久| 青青草伊人久久| 韩日av一区二区| 91在线观看地址| 91精品国产一区二区| 久久亚洲一区二区三区四区| 亚洲国产成人在线| 亚洲最色的网站| 日韩成人午夜精品| 成人午夜视频网站| 欧美另类一区二区三区| 欧美mv和日韩mv国产网站| 久久久久一区二区三区四区| 国产偷国产偷亚洲高清人白洁| 中文字幕在线免费不卡| 夜夜嗨av一区二区三区中文字幕 | 麻豆成人av在线| 国产一区二区三区在线观看免费| 成人福利视频在线看| 91精品国产综合久久久久久漫画| 久久综合九色综合97婷婷| 亚洲视频1区2区| 日韩精品一区第一页| 国产乱码精品1区2区3区| 色视频成人在线观看免| 久久久国产精华| 五月天视频一区| 99久久久国产精品免费蜜臀| 日韩欧美一二三| 亚洲精品免费播放| 精彩视频一区二区三区| 日本精品裸体写真集在线观看| 日韩午夜三级在线| 亚洲国产另类av| 色综合久久久久网| 国产日韩精品一区| 国内精品伊人久久久久av一坑| 欧美在线啊v一区| 亚洲欧洲精品一区二区三区| 美国毛片一区二区| 欧美精品三级日韩久久| 一级中文字幕一区二区| 国产高清精品在线| 久久免费看少妇高潮| 日韩国产欧美三级| 欧美日韩在线一区二区| 136国产福利精品导航| 国产盗摄一区二区| 久久视频一区二区| 久久99精品久久久久婷婷| 欧美男人的天堂一二区| 亚洲线精品一区二区三区八戒| 99综合电影在线视频| 国产精品视频第一区| 成人激情黄色小说| 中文字幕在线不卡| 日本伦理一区二区| 亚洲精品成人在线| 欧美在线观看视频在线| 亚洲夂夂婷婷色拍ww47| 欧美色偷偷大香| 亚洲国产精品尤物yw在线观看| 欧美影院午夜播放| 午夜不卡在线视频| 欧美高清性hdvideosex| 丝袜亚洲另类欧美| 91精品国产综合久久香蕉麻豆| 丝袜国产日韩另类美女| 欧美精品在线观看一区二区| 亚洲国产综合视频在线观看| 色八戒一区二区三区| 亚洲无人区一区| 日韩一区二区三区在线视频| 国产在线视视频有精品| 国产精品美女视频| 欧美影院一区二区三区| 日韩av中文字幕一区二区| 久久影视一区二区| 大陆成人av片| 午夜视频一区二区| 久久午夜电影网| av电影一区二区| 亚洲成人手机在线| 久久综合狠狠综合久久综合88| 国产福利一区在线| 亚洲一区在线观看网站| 日韩免费电影网站| 成人免费va视频| 日本不卡视频在线| 国产日韩欧美在线一区| 欧美性大战久久久| 久久国产剧场电影| 亚洲人成小说网站色在线| 91超碰这里只有精品国产| 成人天堂资源www在线| 亚洲va欧美va国产va天堂影院| 日韩欧美一区中文| 99国产欧美久久久精品| 日日夜夜精品免费视频| 中文字幕第一区综合| 欧美日韩一区二区电影| 粉嫩久久99精品久久久久久夜| 亚洲一区在线观看网站| 国产午夜精品久久久久久免费视 | 亚欧色一区w666天堂| 欧美精品一区二区三区四区 | 99久久精品99国产精品| 青娱乐精品在线视频| 亚洲久本草在线中文字幕| 日韩午夜在线播放| 欧美影视一区在线| 国产91精品一区二区麻豆亚洲| 三级欧美韩日大片在线看| 国产精品乱子久久久久| 欧美不卡一区二区| 欧美另类z0zxhd电影| 色综合 综合色| 成人激情免费视频| 国产成a人无v码亚洲福利| 看片的网站亚洲| 视频在线观看91| 亚洲黄网站在线观看| 中文字幕中文在线不卡住| 国产欧美日韩视频在线观看| 日韩午夜激情视频| 日韩一区二区电影在线| 欧美精品123区| 欧美喷水一区二区| 欧美日本一道本| 欧美精品久久一区| 3atv一区二区三区| 91精品国产全国免费观看| 91福利视频久久久久| 欧美综合色免费| 在线亚洲欧美专区二区| 欧美综合久久久| 欧美日韩国产影片| 在线成人av影院| 欧美精品色一区二区三区| 欧美日韩国产综合草草| 91精品国产品国语在线不卡| 91精品国产91热久久久做人人| 51精品久久久久久久蜜臀| 欧美一级艳片视频免费观看| 欧美一区二区视频在线观看2022| 884aa四虎影成人精品一区| 欧美久久一二区| 精品久久人人做人人爽| 久久久亚洲精品一区二区三区| 久久伊人蜜桃av一区二区| 国产精品美女久久久久久| 亚洲激情男女视频| 性感美女久久精品| 蜜臀av在线播放一区二区三区| 国产一区二区三区黄视频 | 久久久另类综合| 国产精品乱码一区二区三区软件| 国产精品美女久久久久久| 亚洲精品乱码久久久久久久久| 亚洲v中文字幕| 精品一区二区av| 成人午夜看片网址| 欧美三级日韩三级| 精品第一国产综合精品aⅴ| 久久一留热品黄| 亚洲黄色录像片| 久久99国产精品麻豆| 成人久久久精品乱码一区二区三区| 色综合激情久久| 精品日本一线二线三线不卡| 久久久精品人体av艺术| 亚洲青青青在线视频| 五月婷婷欧美视频| 波多野结衣中文一区| 欧美日韩国产片| 久久九九影视网| 亚洲影院免费观看| 国产精品一二三四五| 日本韩国欧美国产| 久久久久久久网| 亚洲第一综合色| 国产大陆亚洲精品国产| 欧美日韩一级二级三级| 久久久久九九视频| 日韩高清在线一区| 91免费看`日韩一区二区| 日韩一区二区三|