我继承了一些我正在进行清理的JSP代码,基于Eclipse中给出的警告/错误。其中一个常见的警告是关于他们一直用于集中输入字段名称配置的实践,我已经理解这种做法很常见。他们在bean中使用静态声明的字符串。因此,例如,在顶部附近,我们定义并使用了bean的特定实例:
<jsp:useBean id="myBean" scope="session" class="com.company.package.MyBean" />
<%
String[] sequence = myBean.getSequence();
HashMap statusLabelMap = myBean.getStatusLabels();
%>
但稍后,还会以非静态方式使用bean类的静态属性:
<label for="<%=myBean.MOD_START%>">Start With:</label>
<select name="<%=myBean.MOD_START%>" id="<%=myBean.MOD_START%>">
这是bean本身的MOD_START声明:
public static final String MOD_START = "modStart";
显然,访问MOD_START的正确方法是MyBean.MOD_START,而不是myBean.MOD_START。但是,考虑到bean实例的创建方式,此语法不起作用。我可以补充一下:
<%@ page import="com.company.package.MyBean" %>
然后更改静态属性访问。但我是一个相对轻量级的JSP编码,我想知道这是否是解决这个问题的“最正确”方法。或者我应该让它去使用非静态语法离开访问?我非常感谢您提供有关此案例的最佳做法的任何指导。