属性命名约定导致JSP页面中的长EL表达式

J.M*_*nny 6 java jsp jstl el

我正在为不同的视图编写很多JSP页面.那些JSP检索请求范围属性,它们具有很长的名称以防止重叠.一个例子是:

request.getAttribute("domain1.subdomain1.subdomain11.subdomain111.attributeName");
Run Code Online (Sandbox Code Playgroud)

EL中的等价物是:

${requestScope['domain1.subdomain1.subdomain11.subdomain111.attributeName']}
Run Code Online (Sandbox Code Playgroud)

有时,我的EL表达式很长(例如,当我使用3个不同的JavaBeans来创建HTML标记或调用javascript函数时).

我的问题是我找到的解决方案是否是一个很好的编程解决方案.鉴于每个视图都有自己的页面范围,在我的JSP开头,我想放

<c:set var="attributeName" scope="page" value="${requestScope['domain1.subdomain1.subdomain11.subdomain111.attributeName']}"
Run Code Online (Sandbox Code Playgroud)

然后在我的EL表达式中,我将使用

${pageScope["attributeName"]}
Run Code Online (Sandbox Code Playgroud)

在阅读JSP代码时,这不会引起对属性实际范围的混淆吗?

小智 0

这看起来好像您正在为长变量名创建别名;没关系。