我可以使用${session.name}
获取值。有没有办法使用表达式语言在JSP中设置值?我不是在询问使用<c:set>
代码。
${param.name}
${session.name}
${request.hhh}
我们以这种方式得到价值,我们可以用同样的方式设定这些价值吗?
请举例说明。
答案 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。
答案 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。