jsp el表达式 是取attribute 还是Parameter?
4个回答
展开全部
EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。
因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。
假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null。
属性范围在EL中的名称
Page PageScope
Request RequestScope
Session SessionScope
Application ApplicationScope
将请求范围的变量名称映射到其值。该对象允许访问请求对象的属性。例如,EL 表达式可以使用 ${requestScope.objectName} 访问一个 JSP 请求范围的对象,还可以使用 ${requestScope.objectName.attributeName} 访问对象的属性。
< %=request.getParameter(“username”)% > 等价于 ${ param.username }
所以是attribute,parameter需要显式地用param调用
因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。
假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null。
属性范围在EL中的名称
Page PageScope
Request RequestScope
Session SessionScope
Application ApplicationScope
将请求范围的变量名称映射到其值。该对象允许访问请求对象的属性。例如,EL 表达式可以使用 ${requestScope.objectName} 访问一个 JSP 请求范围的对象,还可以使用 ${requestScope.objectName.attributeName} 访问对象的属性。
< %=request.getParameter(“username”)% > 等价于 ${ param.username }
所以是attribute,parameter需要显式地用param调用
追答
因为你的action里面定义了usename这个变量,struts是会自动调用set方法将传过来的参数放入,并将全局变量中有get方法的放入request当中,也就是attribute方式,而不是传参,你可以试一下,不定义username这个全局变量,而是通过request.getParameter("usernae");来获得参数(PS:记得实现HttpServletRequest方法,不知道有没有写错!^_^);这样你在页面就应该看不到username的值了
展开全部
取attribute是在传值之前有setAttribute,一般通过表单和链接传递的参数使用getParameter。至于优先级,应该不存在的吧?Java新手,坐等大神回答,共同学习哈。
更多追问追答
追问
注意是 el表达式
追答
不是这样的么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
取得当然是attribute,没办法取得parameter,那是servlet取值用的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是取attribute 还是Parameter 没有明白的意思。
我举个例子给你。
public tclass {
int id = 5;
String name;
加各自的set 和get方法;
如果没有GET方法,EL是不能取得对象的值。
}
jsp
${tclass.id}
这里就会显示 5
我举个例子给你。
public tclass {
int id = 5;
String name;
加各自的set 和get方法;
如果没有GET方法,EL是不能取得对象的值。
}
jsp
${tclass.id}
这里就会显示 5
追问
也许是我理解错了,页面间跳转要用setattribute,而目标页面是否把"私有成员变量"和传入的attribute一起提供给el表达式调用了呢?
A.jsp
setattribute("abc",123);
forward("B.jsp")
B.jsp
${abc} ${cde}是否都能显示 123 234
追答
request.setAttribute("abc"."123");
request.getRequestDispatcher("在这里加你的跳转的页面").forward(request, response);
在跳转的页面上,可以取到你之前定义的值。
${abc}
至于${cde} 我在jsp页面上,很久没有写过代码,不能确定,应该是可以。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询