在jsp页面上几种取action传入值得几种方法

 我们通常在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>

注意两者的区别!!

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值