一般来说,程序中写入硬编码是一个很不好的习惯,比如:this.state="01";通常的做法是写一个类(接口)来存放常量 public interface SystemConstant { String STATE_WTJ = "01"; } 然后在程序中这样写就可以了 this.state=SystemConstant.STATE_WTJ; 在Java程序中这样就可以避免硬编码了。可是JSP中呢?当然,如果JSP中允许使用Scriplet的话当然也可以直接使用常量了,不过现在JSP中一般不允许出现<%%>这样的代码,比如在JSTL中怎么办呢?
<c:if test=${state=='01'}> </c:if> 这样又出现了'01'这样的硬编码了。刚才看了AppFuse的解决方案,觉得挺不错。 先写一个JspTag,详细见org.appfuse.webapp.taglib.ConstantsTag类。 然后在Jsp里使用这个Tag <appfuse:constants scope="request"/> 这样,JSTL中就可以这样写了: <c:if test=${state==STATE_WTJ}> |