2

すべてのサブページをロードしたいページに特定の div があります (これには JQuery を使用しています)。それらをロードする前に、サーバーでいくつかの操作を行う必要があるため、サーブレットを呼び出し、すべての操作が完了したら、.jsp ページをロードしたいのですが、方法がわかりません。

responseText は次のとおりです。

/SAJ/WebContent/WEB-INF/views/administracion/semestres/semestreIndex.jsp

(必要な .jsp が格納されているプロジェクト構造内のルート)

divにresponseTextを書くようになりました:

<div id="content" class="testDiv" >

これを使用して:

function load() {
    $.ajax({
        type: "POST",
        url: "/SAJ/pages/semestre",
        success: function(responseText) {
            $('#content').text(responseText); 
        }
    });
}

しかし、ページ全体をロードする方法がわかりません。私の最初のアイデアはこれを行うことでした:

function load() {
    $.ajax({
        type: "POST",
        url: "/SAJ/pages/semestre",
        success: function(responseText) {
            $('#content').load(responseText); 
        }
    });
}

しかし、Chrome のコンソールに 404 エラーが表示されます。

GET http://localhost:8080/SAJ/WebContent/WEB-INF/views/administracion/semestres/semestreIndex.jsp 404 (Not Found)

私は間違ったルートを使用していると思いますか?しかし、どれが正しいものであるかをどのように見つけることができますか? 私は自分のプロジェクト構造に従っているだけです:

プロジェクトの構造

サーブレット コード:

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
    try {
        Action action = ((ActionFactory) getServletContext().getAttribute("actions")).getAction(request);
        String view = action.execute(request, response);
        if(view.equals("index")){
            request.getRequestDispatcher("/WEB-INF/" + view + ".jsp").forward(request, response);
        }else{
            response.getWriter().write("/SAJ/WebContent/WEB-INF/" + view + ".jsp");
        }
    } catch (Exception e) {
        throw new ServletException("Executing action failed.", e);
    }
}

サーブレットによって呼び出されるアクション:

public class SemestreListarAction implements Action{

    public String execute(HttpServletRequest request, HttpServletResponse response) throws Exception{
    request.setAttribute("test", "HELLO WORLD!");
    System.out.println("I'm nice so I did some stuff for you!");

        return "views/administracion/semestres/semestreIndex";
    }
}

web.xml

<servlet>
    <servlet-name>Redirector</servlet-name>
    <servlet-class>com.saj.controller.Redirector</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Redirector</servlet-name>
    <url-pattern>/pages/*</url-pattern>
</servlet-mapping>

発信者:

<a href="#" onclick="load()">Load</a>
4

3 に答える 3

3

この div があることを認めましょう:

<div id='result'></div>

このように使用してみてください.load()

function load(jsp_path) {

    $("#result").load(jsp_path);

}
于 2013-09-14T15:33:25.347 に答える
0

ここで重要なことの 1 つは、jsp が web-inf ディレクトリにないことを確認し、web-inf と同じレベルまたは web-inf と同じレベルのディレクトリに移動することです。

于 2015-07-29T14:53:37.717 に答える