JSTL 变量名称可以从表达式设置还是必须是文字字符串?
我是 JSTL 的新手,我想将一个标签中多次使用的一些功能概括为一个单独的标签。我的想法是向这个标签传递一个字符串数组。那没问题。但我还想根据这些字符串命名一些变量,以便我可以在本地范围内重用表达式的结果。
示例:
<c:set var="hasFirstName" value="false"/>
我想在标签内的各个位置测试“hasFirstName”。但名称会根据输入而改变。那么有没有办法做这样的事情呢?
<c:forTokens var="formName" items="firstName,middleName,lastName" delims=",">
<c:set var="has_${formName}" value="false"/>
</c:forTokens>
I'm new to JSTL and I want to generalize some functionality that's used multiple times in one tag into a separate tag. My idea is to pass this tag an array of strings. That's no problem. But I also want to name some variables based on those strings so that I can reuse the results of expressions within the local scope.
Example:
<c:set var="hasFirstName" value="false"/>
I want to test for "hasFirstName" at various places within the tag. But the names will change depending upon the input. So is there any way to do something like this?
<c:forTokens var="formName" items="firstName,middleName,lastName" delims=",">
<c:set var="has_${formName}" value="false"/>
</c:forTokens>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您的方法将会起作用,它只会存储为
has_firstName
,而不是hasFirstName
。您可以使用 JSTL 函数,但这很笨拙。
Your approach will work, it will only be stored as
has_firstName
, not ashasFirstName
.You could substring and uppercase the 1st character with JSTL functions, but that's clumsy.