之前只是简单的使用JSTL/EL进行输出,一般的思路很简单:retrieve data -> put to Request -> JSTL/EL
一直没太注意两个问题:
[b]1、JSTL/EL官方上无法方便、直接的访问静态变量。[/b]
比如,我们定义了一个Constants类:
我们并不能直接这样使用:
原因很简单:
1)这个Constants必须出现在某个scope,比如requestScope;
2)这个CONSTANT_A必须有一个getter方法,EL支持bean和map的规范
怎么办?
[b]2、JSTL/EL如何才能简单的使用CodeTable(存储于DB的应用系统变量)?[/b]
应用系统变量几乎是无可避免的,好处大家都懂的。
一般人的思维肯定是:
1)提供一个service,拥有若干方法,比如getCodesByType(String codeType);
2)用的时候get出来,然后put到request上面,最后在JSP中用JSTL/EL来取出
最后的用法,以Spring MVC的tag为例,一般是:
此时表示要获取Gender的CodeTable,并以codeValue为值,codeName为Label
[b]是否存在更简单有效的方法?[/b]
我目前正在整合一些信息并加以模式化,试图提供一个简洁有效的办法来达成目标,也希望大家参与讨论,提供“一站式”的解决方案
一直没太注意两个问题:
[b]1、JSTL/EL官方上无法方便、直接的访问静态变量。[/b]
比如,我们定义了一个Constants类:
public class Constants implements Serializable {
public static final String CONSTANT_A= "ABC";
...
}
我们并不能直接这样使用:
<c:out value="${Constants.CONSTANT_A}"/>
原因很简单:
1)这个Constants必须出现在某个scope,比如requestScope;
2)这个CONSTANT_A必须有一个getter方法,EL支持bean和map的规范
怎么办?
[b]2、JSTL/EL如何才能简单的使用CodeTable(存储于DB的应用系统变量)?[/b]
应用系统变量几乎是无可避免的,好处大家都懂的。
一般人的思维肯定是:
1)提供一个service,拥有若干方法,比如getCodesByType(String codeType);
2)用的时候get出来,然后put到request上面,最后在JSP中用JSTL/EL来取出
最后的用法,以Spring MVC的tag为例,一般是:
<form:select path="gender">
<form:option value="-" label="--Please Select"/>
<form:options items="${CodeTable.Gender}" itemValue="codeValue" itemLabel="codeName"/>
</form:select>
此时表示要获取Gender的CodeTable,并以codeValue为值,codeName为Label
[b]是否存在更简单有效的方法?[/b]
我目前正在整合一些信息并加以模式化,试图提供一个简洁有效的办法来达成目标,也希望大家参与讨论,提供“一站式”的解决方案