0

リストを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 を使用します。(実際、安らかな方法を使用する場合、転送またはリダイレクトする他の方法は見つかりませんでした)
そして、これが私の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("roles") からは何も得られません
。何が問題なのですか?

4

1 に答える 1

1

次のことを行う方がよいと思い
ます。RESTfulメソッドを次のように記述します。

@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 -->
<%}%>
于 2012-07-07T07:13:42.923 に答える