欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Struts 2.0 <s:select>
Struts 2.0 <s:select> 出現問(wèn)題的解決方法

今天在使用Struts 2.0 <s:select>標簽的時(shí)候碰到了錯誤:

tag 'select', field 'list', name 'university': The requested list key 'universities' could not be resolved as a collection/array/map/enumeration/iterator type.

google,baidu找了很多方法,都無(wú)法解決,后來(lái)終于發(fā)現了問(wèn)題所在,其實(shí)是小問(wèn)題,在這里總結一下,以便大家以后會(huì )出現同類(lèi)錯誤。
<s:select>是下拉列表的標簽,有很多種用法,例如直接指定一個(gè)列表,為其賦值:

<s:select name="university" headerKey="-1" headerValue="請選擇" list="{'華南理工大學(xué)', '華中科技大學(xué)', '福州大學(xué)'}"/>

有時(shí)候,我們需要從數據庫里面取得所謂的“數據字典”,填充到下拉列表中,

先來(lái)看看具體的代碼吧:

register.jsp的部分代碼片段:

<form id="form1" action="register.action" method="POST">
           <s:select name="university" headerKey="-1" headerValue="請選擇" list="universities" listKey="uniId" listValue="uniName"/>
</form>

list屬性指定了一個(gè)變量universities,這個(gè)變量是register這個(gè)action的一個(gè)成員屬性,其類(lèi)型是List<University>:

…………

public class Register extends ActionSupport {
    private List<University> universities;

    public List<University> getUniversities() {
        return universities;
    }

    public void setUniversity(String university) {
        this.university = university;
    }

    @Override
    public String execute() throws Exception {
       universities = uniService.getUniversityList();
       …………
    }
}

這里省略了很多東西,只是為了說(shuō)明select標簽的用法,uniService.getUniversityList()可以從數據庫中獲取一個(gè)University的列表,這里省略了uniService的聲明和AutoWire。當然,除了用List以外,還可以用Map。

struts.xml和Spring的配置文件把register這個(gè)action映射到Register.java。具體如何整合Struts 2.0,Spring和Hibernate,網(wǎng)上很多教程,也可以參考Netbeans下的:

http://developers.sun.com.cn/blog/functionalca/category/JavaEE

這里省略具體細節。

如果我們直接運行register.jsp,將會(huì )得到我們開(kāi)頭所描述的錯誤,其實(shí)原因很簡(jiǎn)單,因為第一次運行這個(gè)頁(yè)面的時(shí)候,Register這個(gè)action根本沒(méi)有被實(shí)例化,因此也就沒(méi)有universities這個(gè)變量。那怎么辦呢?很簡(jiǎn)單,首先,在register.jsp前面加一個(gè)頁(yè)面,例如index.jsp:

         <s:url id="regForm" action="register">
            <s:param name="type">getForm</s:param>
        </s:url>
        <s:a href="%{regForm}">注冊</s:a>

這個(gè)頁(yè)面里面很簡(jiǎn)單,定義了一個(gè)url,這個(gè)url會(huì )提交register這個(gè)action,然后再定義一個(gè)超鏈接指向這個(gè)url。這樣,當用戶(hù)點(diǎn)擊超鏈接的時(shí)候,action就會(huì )被實(shí)例化,universities這個(gè)變量也就可以得到了。type這個(gè)屬性有什么用呢?先來(lái)看看我們需要在action的execute方法做一些改動(dòng):

       public String execute() throws Exception {
         if (type != null && type.equals("getForm")) {
            universities = uniService.getUniversityList();
            return INPUT;
        }

        if (type != null && type.equals("submit")) {
           …………
        }
      }

由于我們的表單可能會(huì )再一次提交(例如注冊),因此必須區分是初始化頁(yè)面,還是要提交頁(yè)面。用一個(gè)屬性來(lái)區別就可以了。當然,我們還需要在register.jsp里面聲明一個(gè)這樣的屬性,否則再一次提交表單的時(shí)候這個(gè)變量就取不到了:

      <input type="hidden" name="type" value="submit"/>

最后,運行index.jsp,點(diǎn)擊超鏈接,頁(yè)面就能正常顯示了。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
超簡(jiǎn)單方法解決Struts2中一個(gè)action處理多個(gè)請求 - 左手可樂(lè ) 右手白菜 - J...
Web項目的WEB
Struts防止表單重復提交
Struts2的struts.xml中配置及通配符的使用
JSTL與Struts的結合(四)
struts2 jsp頁(yè)面獲取屬性值
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久