request.setAttribute()后jsp页面取不到值

request.setAttribute()后jsp页面取不到值,第1张

不能这么请求。

因为页面上的request 和使用form提交的request 请求 不是一个对象。测试如下:

首先在jsp页面中打印出来request对象

<%

requestsetAttribute("test","test");

Systemoutprintln("request="+request+"返回页面对象");//这里打印出页面request对象

%>

部分action代码如下:

>

关于在JSP取值问题,以下两种情况供参考:

如果设置的值是对象,比如:

sessionsetAttribute("admins1",admins1);

取的时候直接用${ }取,比如:

<li><a style="color: #A8ABA9">${admins1email }</ a></li>

如果设置的值是集合,比如:

sessionsetAttribute("list ",list );

取值的时候需要先遍历再取值,如下:

<table>

        <tr>

            <th>序号</th>

            <th>描述</th>

            <th>名称</th>

            <th>状态</th>

            <th>创建时间</th>

            <th>更新时间</th>

            <th>发布时间</th>

        </tr>

        <c:forEach items="${list }" var="role">

            <tr>

                <td>${roleid }</td>

                <td>${rolecontent }</td>

                <td>${rolename }</td>

                <td>${rolestatus }</td>

                <td>${rolecreateTime }</td>

                <td>${roleupdateTime }</td>

                <td>${rolepubTime }</td>

            </tr>

        </c:forEach>

    </table>

使用: requestgetAttributeNames() 下面是例子

requestsetAttribute("cc", "aa");

requestsetAttribute("cc1", "aa1");

requestsetAttribute("cc2", "aa2");

Enumeration v=requestgetAttributeNames();//获取所有

while(vhasMoreElements()){

Object obj = vnextElement();

Systemoutprintln("obj:"+(String)obj);//打印cc cc1 cc2 Systemoutprintln("att:"+requestgetAttribute((String)obj));/打印aa aa1 aa2

}

类似这样 ,不过这个list里面是装的对象

<table>

<%

List list = (List)requestgetAttribute("data");

for(int i=0;i<listsize();i++)

{

Object o = listget(i);

%>

<tr>

<td><%=oget 提取对象中的属性 %></td>

</tr>

<%

}

%>

</table>

补充:看了上面答案,确实尽量用equal好,不过如果是确定的字符串如(“all”而不是String型的变量),这样比较也不会错

1requestgetParameter只要在一次request中,你想用几次都行

2可以执行,||是逻辑或&&是逻辑与,因为逻辑与的优先级更高,所以||前面的和后面的符合一个就可以了,如果每个条件都要符合才行,如果mtype=all,type=none的时候就是满足||后面的逻辑与(requestgetParameter("mtype") == "all" && requestgetParameter("type") == "none")),所以可以执行条件语句

jsp中获取redirect的值一般有两种方式:

1、requestgetRequestDispatchforward( "/testjsp ")用来转向到另一个页面,能把该页面中的数据比如:request,传入到转向的页面,实现浏览器网址不改变

2、responsesendRedict( "/testjsp ")页面重定向到另一个页面,实现浏览器网址改变。

第1种方法才能获得页面传过去的值。

而sendRedict 是获取不到值的。要用第一种方法才能获取到值得。

用requestgetParameter("name");来获取。

另外,还可以用sessionsetAttributeI("",""); 来传值

如果页面存在一个input 那么这个input或者其他复选框之类的都必须有一项Id。

用js获取那个input的value值的时候用

var id = documentgetElementById("id”)value

这样id获取到value值存储在id上了。

var 是JS中声明变量的方法。

requestgetParameter()是或许URL当中的传递的参数,

比如>

以上就是关于request.setAttribute()后jsp页面取不到值全部的内容,包括:request.setAttribute()后jsp页面取不到值、jsp request.getparameter 是从哪里参数、request.getSession.setAttribute设置的值在JSP怎么取等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9794610.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存