Как я могу получить список, перенаправленный в файл JSP?
Я использую метод restful, в котором я хочу передать список в файл JSP.
Вот метод отдыха:
@Path("myRest")
public void handleRequestInternal() throws Exception {
try {
Request req = new Request();
List<String> roles = manager2.getAllRoles();
req.setAttribute("roles", roles);
java.net.URI location = new java.net.URI("../index.jsp");
throw new WebApplicationException(Response.temporaryRedirect(location).build());
} catch (URISyntaxException e) {
e.printStackTrace();
}
}
Я использую исключение webApplicationException для перехода на нужную мне страницу. (На самом деле я не нашел другого способа переадресации или перенаправления при использовании методов restful)
И вот мой файл JSP:
<% if(request.getAttribute("roles") != null){%>
<% Object obj = (Object)request.getAttribute("roles");
List<String> roles = (List<String>) obj;%>
<select name="role">
<%int size = roles.size();%>
<%for(int i = 0; i < size; i++){ %>
<option value = "<%= roles.get(i)%>"><%= roles.get(i)%>
<%} %>
</select>
<%}%>
Но я ничего не получаю от request.getAttribute("роли")
В чем проблема?
1 ответ
Решение
Я думаю, вам лучше сделать следующее:
Напишите ваш метод отдыха следующим образом:
@Path("myRest")
public void handleRequestInternal() throws Exception {
try {
List<String> roles = manager2.getAllRoles();
String role = new String();
for(int i = 0; i < roles.size(); i++){
if(i != roles.size() - 1)
role += roles.get(i) + '-';
else
role += roles.get(i);
}
java.net.URI location = new java.net.URI("../index.jsp?roles=" + role);
throw new WebApplicationException(Response.temporaryRedirect(location).build());
} catch (URISyntaxException e) {
e.printStackTrace();
}
}
И в вашем файле JSP:
<% if(request.getParameter("roles") != null){%>
<!-- process request.getParameter("roles") into an arraylist and you are good to go -->
<%}%>