我不知道如何将此scriptlet代码重新编码为JSTL / EL taglib。这些语句很简单,但它使用会话数据并制作新的对象,我不知道如何在JSTL / EL中做。是否可以将其重新编码为JSTL / EL或者是否需要将其放入预处理servlet中?如果我需要预处理servlet,那么我仍然不知道如何管理,因为此视图没有特定的请求处理程序,只能访问将会话对象填充到jsp页面的网页。如何将其重写为JSTL / EL?
<%
final Logger logger = Logger.getLogger("arendeprocess_grunduppgifter_visa.jsp");
ArendeProcessPageController apc = new ArendeProcessPageController(request);
GrunduppgifterPageController pc = new GrunduppgifterPageController(request);
String arendeTyp = apc.getArendeTyp();
boolean showSearch = false;
int vectr = 0; // får bara användas i errormessages.jspf
IFormData ifData = PandoraManager.getSessionData(session).getFormData();
AnsokanInfo ansokanInfo = apc.getAnsokanInfo();
PersonInfo editPerson = new PersonInfo();
if(ansokanInfo != null && ansokanInfo.hasEditPersonInfo()) {
editPerson = ansokanInfo.getEditPersonInfo();
} else {
editPerson.setFornamn(apc.getNyregPerson().getFornamn());
editPerson.setEfternamn(apc.getNyregPerson().getEfternamn());
editPerson.setForetag(apc.getNyregPerson().getForetag());
//editPerson.setOrgnr(apc.getNyregPerson().getOrgnr());
editPerson.setLandKod(apc.getNyregPerson().getLandKod());
}
if(apc.getLatestAction().equals("Namnsokning") && apc.getLatestActionCommand().equals("search")) {
showSearch = true;
}
List<PersonInfo> sokandeList = ansokanInfo.getSokandeList();
List<PersonInfo> uppfinnareList = ansokanInfo.getUppfinnareList();
List<PersonInfo> ombudList = ansokanInfo.getOmbudList();
List<Prioritet> prioriteter = ansokanInfo.getPrioriteter();
List<Deposition> depositioner = ansokanInfo.getDepositioner();
request.setAttribute("request", request);
request.setAttribute("ansokanInfo", ansokanInfo);
request.setAttribute("editPerson", editPerson);
request.setAttribute("apc", apc);
request.setAttribute("sokandeList", sokandeList);
request.setAttribute("uppfinnareList", uppfinnareList);
request.setAttribute("ombudList", ombudList);
request.setAttribute("GrunduppgifterConstants", new GrunduppgifterConstants());
%>
答案 0 :(得分:1)
是的,你可以在scriptlet中编写的任何内容都可以用EL/Custom Tags
编写。
有两种方法:
答案 1 :(得分:0)
JSTL旨在控制HTML生成的流程。然而,这个 scriptlet 不会产生任何HTML,因此用JSTL替换是完全不可能的。
您确实需要一个预处理servlet。我只是不明白你的意思是什么
我仍然不知道如何管理,因为此视图没有特定的请求处理程序,只能访问将会话对象填充到jsp页面的网页
但是应该将有问题的JSP文件移动到/WEB-INF
文件夹中,以便永远不能直接访问它并创建一个映射到所需URL模式的servlet,并在{{{ 1}}方法,最后转发到所需的JSP。假设JSP文件是doGet()
并且已经重新定位到/page.jsp
,那么servlet将如下所示:
/WEB-INF/page.jsp