String 从字符串计算JSTL表达式
是否可以在JSP中将字符串作为EL表达式求值并从中获取值 我需要一个类似于String 从字符串计算JSTL表达式,string,jsp,el,String,Jsp,El,是否可以在JSP中将字符串作为EL表达式求值并从中获取值 我需要一个类似于${model.${fieldPath}}的表达式,其中fieldPath将包含嵌套对象模型中所需的对象路径 我可以通过使用获取实际字段路径,但我不确定如何计算字符串并从中获取值 非常感谢您提供的任何帮助。我不确定我是否正确理解了它,但我认为您只需要以下表达: ${model[fieldPath]} 在EL dot中,运算符和订阅基本相同:不同的语法,但访问相同。 ${model.get(fieldPath)}这不是J
${model.${fieldPath}}
的表达式,其中fieldPath将包含嵌套对象模型中所需的对象路径
我可以通过使用获取实际字段路径,但我不确定如何计算字符串并从中获取值
非常感谢您提供的任何帮助。我不确定我是否正确理解了它,但我认为您只需要以下表达:
${model[fieldPath]}
在EL dot中,运算符和订阅基本相同:不同的语法,但访问相同。
${model.get(fieldPath)}
这不是JSTL。这是EL(表达语言)。JSTL标记库如图所示:我已经删除了JSTL标记。感谢您的回复。但在我们的示例中,“fieldPath”值指向一个复杂的结构,如“matrixAssumptions[assumptionId].data[rowName].data[matrixColumns[0]].percentage”。当我尝试使用[]而不是EL-dot时,它无法在对象中找到这样的字段并抛出异常。@Venkatesh:具体是什么异常?如果表达式提供了有效的属性名(即对${model}
有效),则应该能够将整个表达式放入${model[…]}
中的括号中。我还在这里寻找答案。如果fieldPath=“mycollection[5]”,由于嵌套的方括号,${model['mycollection[5]']}不起作用,但是${model.mycollection[5]}起作用。错误是:javax.servlet.jsp.JspException:javax.el.PropertyNotFoundException:类'path.to.myModelBean'没有属性'mycollection[5]“.@thetoolman:据我所知,你想要的东西在EL身上是不可能直接实现的。您需要为它编写一些函数(或者JSTL中已经准备好了一些东西,但我不知道,因为我没有使用它)。对我来说,如果没有自定义函数,EL几乎是无用的。顺便说一句,ApachePropertyBean
提供了对嵌套属性的访问。