如何在没有JSTL <c:set>标签的情况下使用JSP表达式语言设置值?</c:set>

时间:2013-08-08 13:17:53

标签: jsp el

我可以使用${session.name}获取值。有没有办法使用表达式语言在JSP中设置值?我不是在询问使用<c:set>代码。

${param.name}
${session.name}
${request.hhh} 

我们以这种方式得到价值,我们可以用同样的方式设定这些价值吗?

请举例说明。

5 个答案:

答案 0 :(得分:3)

EL语法的目的非常小,它旨在显示和格式化数据而不是更改它。这样做的原因是鼓励MVC方法,在显示任何内容之前已经处理了业务逻辑。它还具有非常容易学习的优点,即使对于非程序员也是如此。

<c:set>是这样做的方法。 EL没有等价物。

答案 1 :(得分:1)

${param.name = "123"}
${session.name = "abc"}
${request.hhh = "xyz"}

答案 2 :(得分:0)

标准JSP / JSTL功能支持3种方法将值设置为bean属性或Map。

  1. c:set(对于java bean和java map)
  2. jsp:setProperty(仅适用于java bean属性。不是MAP)
  3. jsp scriptless(在jsp中编写java代码)

答案 3 :(得分:0)

$ {myVariable =“ 666”;“”}

根据EL3.0规范:

分号运算符-A;乙 分号运算符的行为类似于C中的逗号运算符。 为了评估A; B,首先评估A,然后丢弃其值。 然后评估B并返回其值。

因此,我们评估一个赋值对象,丢弃该结果,然后评估并返回一个空字符串。

答案 4 :(得分:0)

摘自here:EL 3.0(JSR 341,Java EE 7的一部分)代表EL 2.2的重大提升。 EL 3.0的主要功能如下:

New operators +, =, and ;

Lambda expressions

Collection objects support

An API for standalone environments

与赋值运算符一起工作

在赋值运算符(=)的类型x = y的表达式中,将y的值赋给x。为了避免类型为PropertyNotWritableException的错误,x值必须为lvalue。以下示例显示如何在两个简单表达式中使用此运算符:

#{x = 3} evaluates to 3

#{y = x + 5} evaluates to 8

赋值运算符是右关联的(z = y = x等效于z =(y = x))。例如,#{z = y = x + 4}等于7。