Каков правильный способ удалить ключ из моего JSP-файла? У меня есть фабрика, которая может возвращать несколько типов объектов. Каждый из них имеет свою собственную логику представления, так что мне нужно что-то вроде этого:Каков правильный способ удаления большого переключателя из моего файла jsp
//From controller
@RequestMapping(value = "/source", method = RequestMethod.POST)
public ModelAndView doMainJob(@RequestParam("text") String text) {
ResultState state = new ResultStateFactory().fromString(text);
ModelAndView model = new ModelAndView("result/view");
model.addObject("state", state);
model.addObject("stateType", state.getClass());
return model;
}
//from jsp/result/view.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="main" tagdir="/WEB-INF/tags" %>
<%@taglib prefix="r" tagdir="/WEB-INF/tags/result" %>
<main:basic_layout>
<jsp:body>
<c:choose>
<c:when test="${stateType == StateA}"><r:stateA param=${state} /></c:when>
<c:when test="${stateType == StateB}"><r:stateB param=${state} /></c:when>
<c:when test="${stateType == StateC}"><r:stateC param=${state} /></c:when>
.
.
.
<c:when test="${stateType == StateX}"><r:stateX param=${state} /></c:when>
<c:when test="${stateType == StateY}"><r:stateY param=${state} /></c:when>
</c:choose>
</jsp:body>
</main:basic_layout>
Моя фабрика основана на аннотации, так что я могу легко добавить состояние с правильной аннотацией. Я хочу сделать что-то похожее на теги. Было бы идеально, если бы я добавил только 2 файла: 1 состояние с правильной аннотацией и 1 файл тега.
Почему вы не создать единый '<г: состояния типа = "$ {stateType}" Param = "$ {} состояния">', который делегаты под капотом далее для правильного осуществления? – BalusC
Не будет ModelAndView model = new ModelAndView ("result/view /" + state.getClass(). GetSimpleName()); 'работа тоже? – Esailija
'ModelAndView model = new ModelAndView (" result/view/"+ state.getClass(). GetSimpleName());' будет работать, но что, если мне нужно показать список результатов – user2050786