-1

セッションに値を保存しようとしていますが、「文字列が正しく閉じられません」というエラーが表示されます。

私は値を保存するためにこのコードを使用しています:

<% session.setAttribute("emailvalue",request.getParameter("<%=request.getQueryString() %>"));
               String str=(String)session.getAttribute("emailvalue"); %>

それは正しいsystaxですか?

4

2 に答える 2

3

それ以外の

<% session.setAttribute("emailvalue",request.getParameter("<%=request.getQueryString() %>"));String str=(String)session.getAttribute("emailvalue"); %>

request.getQueryString() から取得した値を別の変数に格納します。あなたが持っているコードには、jsp コンパイラでサポートされていない別の jsp Java タグ <%...%> 内に jsp systemout タグ <%=...%> があります。

代わりに、コードをより単純にして、次のように機能させます

<% String queryString = request.getQueryString(); session.setAttribute("emailvalue",queryString ); String str=(String)session.getAttribute("emailvalue");%>
于 2012-11-26T19:19:41.853 に答える
2

<%=すでにスクリプトレット内にいるため、Java 文字列を取得するためにもう一度使用する必要はありません。

<% session.setAttribute("emailvalue", request.getQueryString());
   String str = (String) session.getAttribute("emailvalue"); %>

呼び出しrequest.getParameter(request.getQueryString())ても意味がありません。

最後に、スクリプトレットは使用しないでください。JSP EL と JSTL を使用します。

<c:set var="emailValue" value="${pageContext.request.queryString}" scope="session"/>

または、コントローラー (つまり、サーブレットまたは JSP にディスパッチするお好みの MVC フレームワークのアクション) でそれを行うことをお勧めします。

于 2012-11-26T19:22:08.930 に答える