在jsp頁面上幾種取action傳入值得幾種方法__js

來源:互聯網
上載者:User

 我們通常在action中需要向jsp頁面中傳入背景值,我們以前使用的是比較傳統的方法用el運算式例如:${requestScope.value},但是,業務的多變我們又是不得不用另外的方式傳入值到jsp頁面,已達到我們想要的效果。
 1.以前yoyo在上課的時候講的那種用:ServletActionContext.getRequest().setAttribute("key","value");先放在request中,然後到頁面用${requestScope.key}這種el運算式也是一種方法。

2.可以在action中直接定義要傳入前台的屬性,然後getter and setter 如:

public class testAction extends ActionSupport {

 


public String execute() throws Exception {

userinfo=this.userinfoDao.getuserinfo();

System.out.println(userinfoList.get(0).get("USER_ID"));

return "success";

}

private Userinfo userinfo;

 


getter   ......

setter......

}

這是可以再前台直接去到userinfo的屬性,就不用再action中再ServletActionContext.getRequest().setAttribute(" userinfo ", userinfo  );

然後到頁面上用el運算式了<input type="text" value="userinfo.userid ">可吧userid的值放入文字框中。

3.我們還有一種從action中傳入值到jsp頁面的方法:Map對象。map對象是一種索引值對的形式,我們首先在action中定義一個屬性(同2):


public class testAction extends ActionSupport {

 


public String execute() throws Exception {

//集合形式

userinfomaplist=OperateDbByJDBC.select("select * from userinfo");

//單條資料形式

userinfomap=OperateDbByJDBC.select("select * from userinfo where user_id=1");

return "success";

}

//集合形式

private list<Map<string,string>> userinfomaplist;

//單條資料形式

private Map<string,string> userinfomap;

 


getter   ......

setter......


getter   ......

setter......


}

我上面的OperateDbByJDBC.select()方法是一個利用sql語句進行jdbc查詢的方法,在select方法裡面我把查詢出來的資料經過處理返回Map索引值對的形式,順便,有時我們在ssh架構中hql實現不了的業務,我們可以考慮在項目架構中用兩種資料訪問形式,hql(hibernate)和sql(jdbc),這種也便於開發。

上面一點(第二點)講過只要定義一個屬性,然後getter and setter就可以直接在頁面上用,但是Map對象怎麼在jsp中取值呢。

<a  一條資料形式:用${USER_ACCOUNT}形式,因為在jdbc查詢過程中,把列名放在了map對象的key中,然後把對應的列值放在了walue中,頁面上直接用列名加el運算式 就可以把對應的value值取出。

<b 集合對象形式: 集合對象要遍曆,我們要用到核心標籤庫的<c:forech>或struts2標籤庫的<s:s:iterator>

隨便你高興用哪種。

<c:forech>(jstl標籤)遍曆一個map對象:


<c:forEach items="${ userinfomaplist}" var="userinfo" varStatus="userinfos">

//${ userinfomaplist}要遍曆的map集合

${userinfo.USER_ID} //var.列名

${userinfo.USER_ACCOUNT}

</c:forEach>

<s:iterator>(struts2標籤)遍曆一個map:


<s:iterator value="userinfoList" id="user" status="users">

${USER_ACCOUNT}

${USER_ID}

</s:iterator>

注意兩者的區別。。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.