私が信じていることは、非常に単純な問題ですが、それを解決しようとする私の試みはすべて失敗しました。
簡単に言うと、Java サーブレットを呼び出すフォームを含む JSP ファイルがあります。サーブレットは入力を処理し、変数 (属性) を返し、同じjsp にリダイレクトします。スクリプトレットではなくJavaScriptを使用して、返された属性を jsp で処理したいと考えています。
JSP コード (test.jsp):
<html>
...
<%@page language="java"
import="java.sql.*"
import="java.util.*"
%>
...
<body>
<script type='text/javascript'>
var name = session.getAttribute("test");
alert(name);
</script>
...
</body>
</html>
そしてサーブレットコード:
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
request.getSession().setAttribute("test", "value");
String redirectedPage = "/test.jsp";
RequestDispatcher reqDispatcher = getServletConfig().getServletContext().getRequestDispatcher(redirectedPage);
reqDispatcher.forward(request,response);
}
問題は、セッション変数の宣言に起因すると考えています。
var name = session.getAttribute("test");
私も試しました:
var name = (String) session.getAttribute("bob");
と:
String name = (String) session.getAttribute("bob");
スクリプトレット (<% %>) を使用してフォーム内からこの属性にアクセスできますが、返された属性を変更/処理する必要がありません。
どんな助けでも大歓迎です。この質問がすでに尋ねられている/対処されていると思われる場合は (検索しました)、丁寧にお知らせください。