#java #spring #jsp #spring-mvc #servlets
#java #spring #jsp #spring-mvc #сервлеты
Вопрос:
В моем приложении spring для каждого класса сущностей у меня есть набор представлений, которые имеют общую структуру. общая структура хранится в отдельном файле jsp, размещенном в /WEB-INF/jsp /common. конкретная страница jsp хранится в /WEB-INF /jsp / private / и прямо сейчас содержит это содержимое:
<jsp:include page="../../common/listagem.jsp">
<jsp:param name="entity" value="<Entity_name>"/>
</jsp:include>
Помимо параметра entity
, мне нужно передать на общую страницу jsp массив с атрибутами объекта. Я использовал что-то вроде этого:
<jsp:param name="elements" value="login"/>
<jsp:param name="elements" value="pnome"/>
<jsp:param name="elements" value="unome"/>
<jsp:param name="elements" value="email"/>
но я хотел что-то вроде этого:
<jsp:param name="elements" value="login,pnome,unome,email"/>
Кроме того, в суперклассе для моих классов сущностей у меня есть этот метод:
public List<String> getListaArgumentos() {
List<String> lista = new ArrayList<String>();
int counter = 0;
String nome = this.getArgumentName(counter);
do {
lista.add(nome);
nome = this.getArgumentName( counter);
}while(nome != null);
return lista;
}
которые возвращают список имен атрибутов. Если я передам из своего конструктора этот список в свое представление, есть ли способ использовать это для замены "login,pnome,unome,email"
?
Ответ №1:
Добавьте это новое значение в ModelAndView в вашем контроллере
ModelAndView mav = new ModelAndView("your view");
mav.addObject("arguments",getListaArgumentos());
Затем вы можете передать представление в общий, как это, прежде чем включить
<c:set var="arguments" value="${arguments}" scope="request"/>
<jsp:include page="../../common/listagem.jsp">
Кстати, никогда не используйте свой собственный язык для кодирования, помните, что самое большое сообщество разработчиков — это англоязычные.