サーブレットから呼び出し元の JSP にオブジェクトを渡す方法。
サーブレットを呼び出す JSP があります。このサーブレットから、viewBean のプロパティを設定しています。ここで、JSP ページのサーブレットからこのプロパティ値セットを取得したいと考えています。
この ViewBean オブジェクトをサーブレットから JSP で使用できるようにする方法。
次のように、オブジェクトをセッションに入れるか、サーブレットにリクエストします。
String shared = "shared";
request.setAttribute("sharedId", shared); // add to request
request.getSession().setAttribute("sharedId", shared); // add to session
this.getServletConfig().getServletContext().setAttribute("sharedId", shared); // add to application context
次のようにjspで読むことができます:
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<body>
<cut value= "${shared}"/>
<cut value= "${requestScope.shared}"/>
<cut value= "${requestScope.request.shared}"/>
${shared}
または、コード付きのスクリプトレットを使用して読み取ります。
<%
String shared = (String)request.getAttribute("sharedId");
String shared1 = (String)request.getSession().getAttribute("sharedId");
String shared2 = (String)this.getServletConfig().getServletContext().getAttribute("sharedId");
%>
まず、ページからアクセスできるように、次のように値を設定する必要があります。
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class MyServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) {
// Do some work.
Person value = new Person("Matthew", "Abbott";
request.setAttribute("person", person);
// Forward to to the JSP file.
request.getRequestDispatcher("showValue.jsp").forward(request, response);
}
}
次に、式言語を使用して、値のプロパティにアクセスできます。
<!DOCTYPE html>
<html>
<head>
<title>${person.forename} ${person.surname}</title>
</head>
<body>
<h1>Hello ${person.forename}!!!</h2>
</body>
</html>
その ViewBean オブジェクトをサーブレットの session 属性に追加します。そしてその変数をjspで取得します。
サーブレットで
ViewBean viewbwanObject= new ViewBean() session.setAttribyte("obj",vi);
jspで。
<%
ViewBean v= (ViewBean)session.getAttribute("obj") %>
このようなものが動作するはずです
request.setParameter("nameOfmyObjectParam",MyObject); //or request.setAttribute
String yourJSP = "/WEB-INF/pages/yourJSP.jsp";
RequestDispatcher rd = getServletContext().getRequestDispatcher(yourJSP);
rd.forward(request, response);
次のように、サーブレット API を使用して、Bean をサーブレットのリクエスト属性として設定します。
request.setAttribute("viewBean", viewBean);
次のようにELを使用してJSPで取得(使用)します-
${requestScope.viewBean}