在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
    评论
### 回答1: 在Java Web应用程序中,我们访问Servlet API有以下几种方法: 1. 在Servlet中使用内置对象request和response来访问Servlet API。 2. 在Servlet中使用getServletContext()方法获取ServletContext对象,然后使用该对象来访问Servlet API。 3. 在JSP页面中使用内置对象request和response来访问Servlet API。 4. 在JSP页面中使用内置对象application来获取ServletContext对象,然后使用该对象来访问Servlet API。 5. 在过滤器中使用内置对象request和response来访问Servlet API。 6. 在监听器中使用内置对象servletContextEvent来获取ServletContext对象,然后使用该对象来访问Servlet API。 这些方法可以帮助我们在Java Web应用程序中访问Servlet API。 ### 回答2: 在Java中,访问Servlet API的方式有以下几种方法: 1. 继承HttpServlet类:创建一个继承自HttpServlet的类,并重写其中的doGet、doPost等方法来处理不同的HTTP请求。然后在web.xml配置文件中将该Servlet映射到相应的URL地址,当请求到达该URL时,容器会调用对应的Servlet类来处理请求。 2. 实现Servlet接口:创建一个实现Servlet接口的类,并实现其中的方法。然后通过web.xml配置文件中的servlet元素和servlet-mapping元素来将该类映射到URL地址,从而使得请求到达时,容器会调用该类来处理请求。 3. 注解方式:可以使用@WebServlet注解来定义一个Servlet类,并通过urlPatterns属性指定该Servlet要处理的URL地址。这种方式不需要在web.xml中显式配置,容器会根据注解自动进行映射。 上述三种方式都可以实现对Servlet API的访问,具体选择哪种方式决于个人偏好和项目需求。 ### 回答3: Action访问Servlet API有以下几种方法: 1. 通过继承HttpServlet类:Action可以继承HttpServlet类,从而获得访问Servlet API的能力。使用这种方式,需要重写doGet()、doPost()等方法来处理请求,并可以通过request和response对象获取请求参数和发送响应。 2. 通过实现Servlet接口:Action可以实现Servlet接口,在该接口的service()方法中处理请求,并通过ServletRequest和ServletResponse对象访问Servlet API。与继承HttpServlet类相比,这种方式需要自己处理请求的分发和HTTP请求方法的判断。 3. 通过注入Servlet API对象:Action可以通过依赖注入的方式,在构造函数或者通过属性注入ServletRequest和ServletResponse对象,从而获取访问Servlet API的能力。这种方式适合于使用框架来管理Action实例的情况,可以方便地使用Servlet API的各种方法。 4. 通过Servlet容器提供的API:Action可以通过访问ServletContext对象来获取其他Servlet的信息,包括路径、初始化参数等。此外,也可以通过访问HttpSession对象来获取或设置会话信息。 总之,Action访问Servlet API的方式主要有继承HttpServlet类、实现Servlet接口、注入Servlet API对象和通过Servlet容器提供的API。根据具体的需求和项目情况,可以选择合适的方式来访问Servlet API。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值