1

渡されたパラメーターに基づいてページに人をリダイレクトすることを完全な目的とするサーブレットがあります。ただし、ページにリダイレクトすると、ボタンをクリックすると、ページがランディング ページにリダイレクトされます。

コントローラ:

@WebServlet(name = "Case1Controller", urlPatterns = {"/C1Control"})
public class Case1Controller extends HttpServlet {

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    try (PrintWriter out = response.getWriter()) {
        String jsf = request.getParameter("jsf");
        if(jsf.equalsIgnoreCase("V")) {
    response.sendRedirect(response.encodeRedirectURL("AddVendor.jsf"));
        }
        if(jsf.equalsIgnoreCase("P")) {
    response.sendRedirect(response.encodeRedirectURL("AddProduct.jsf"));
        }
        if(jsf.equalsIgnoreCase("O")) {
    response.sendRedirect(response.encodeRedirectURL("POGenerator.jsf"));
        }
    }
}

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    processRequest(request, response);
}


@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    processRequest(request, response);
}


@Override
public String getServletInfo() {
    return "Short description";
}

}

利用方法:

 < ul>
      < m:MenuItem caption="Add Vendor" jsf="V"/>
      < m:MenuItem caption="Add Product" jsf="P"/>
      < m:MenuItem caption="Generate PO" jsf="O"/>
 < /ul>

メニュー項目コントロール:

<!-- INTERFACE -->
<cc:interface>
    <cc:attribute name="caption" required="true"/>
    <cc:attribute name="jsf" required="true"/>
</cc:interface>

<!-- IMPLEMENTATION -->
<cc:implementation>
    <h:outputLink value="/Info5059Case1/C1Control?jsf=#{cc.attrs.jsf}"> #{cc.attrs.caption}</h:outputLink>&nbsp;

</cc:implementation>
4

1 に答える 1

2

キャッチしていない例外がスローされる原因となっているボタンの何かがありますか? これにより、コントローラーがユーザーをリダイレクトする可能性があります。

于 2013-10-10T14:14:37.013 に答える