Я унаследовал некоторый код JSP, над которым я работаю, основываясь на предупреждениях / ошибках, выдаваемых в Eclipse. Одно из распространенных предупреждений касается практики, которую они использовали для централизации конфигурации имен полей ввода, что, как я понимаю, является распространенным явлением. Они используют статически объявленные строки в бобах. Так, например, около вершины у нас есть конкретный экземпляр определяемого и используемого компонента:
<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%>">
Вот объявление для MOD_START в самом бине:
public static final String MOD_START = "modStart";
Очевидно, что правильный способ доступа к MOD_START - это MyBean.MOD_START, а не myBean.MOD_START. Однако, учитывая способ создания экземпляра компонента, этот синтаксис не работает. Я мог бы добавить:
<%@ page import="com.company.package.MyBean" %>
, а затем измените доступ к статическим свойствам. Но я, будучи относительно легким для JSP-кодирования, задаюсь вопросом, является ли это «наиболее правильным» способом решения этой проблемы. Или я должен просто отпустить и оставить доступ с использованием нестатического синтаксиса? Буду признателен за любые рекомендации, которые вы можете предложить по наилучшим методам для этого случая.