2017-11-06 23 views
0

を得ていません。もともと私はサーブレットからパラメータを渡してみましたが、うまくいきませんでした。テストとして、私はHTMLページ上のフォームからそのJSPを呼び出すことも試みました。私はサーブレットで何JSPは、私が表示されたときにリクエストパラメータ値のいずれかを見ていないJSPページを持つリクエストパラメータに

<div> 
    <form action="samplePage.jsp" method="post"> 
     <input name="param" type="hidden" value="sampleValue"/> 
     <input type="submit" value="Update"> 
    </form> 
</div> 

最後に、私はJSPに持っているもの:

私は隠しフィールドを持つフォームをHTMLページからJSPを呼び出す方法

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    String sampleValue = sampleModel.getMyValue(); 
    request.setAttribute("param", sampleValue); 

    RequestDispatcher view = request.getRequestDispatcher("samplePage.jsp"); 
    view.forward(request, response); 
} 

<body> 
    <p>Some info: ${param}</p> 
</body> 

私はこの問題は、ある要求属性「PARAM」の値が「sampleValue」を言うことができますでレンダリングされません言ったようにページ上にこれが行われ、私は私のコードが正しいと思う方法を

私は多くの例を見てきました。これがうまくいかない他の理由はありますか? Tomcat 8.5でmavenプロジェクトを実行しています。

EDIT:私が今までに見つけたことは、問題が表現言語がうまくいかないことではないということです。要求属性は、JSPに到着したときに値を持たないだけです。

+2

try 'param.param' https://stackoverflow.com/questions/26747831/jsp-expression-language-get-parameter – Oleg

+0

提案していただきありがとうございますが、これは動作しません。属性は単純な値なので、$ {param}でアクセスする必要があります。 $ {param.param}はネストされたプロパティに使用されます。 – PetarMI

+1

いいえ、最初のパラメータは、paramという名前であるため、2番目のパラメータが要求パラメータにアクセスすることです。 – Oleg

答えて

0

フォームは方法=ポストを使用しています。サーブレットコードは、doPostメソッド代わりののdoGetに配置する必要があります。サーブレットのケースについては

+0

はい、わかりましたが、これは問題ではありません。 JSPページを呼び出す別の方法としてフォームを使用しました。ポストやゲットをしても、まだパラメータが表示されません。 – PetarMI

+0

もしそうなら、何らかの理由でExpression Languageが動作していない可能性があります。 JSP上の古い形式の<%= request.getAttribute( "param")%>を$ {param}に置き換えてみてください。 –

+0

はい私もそのスクリプレットを試しましたが、今は結果としてnullを与えました。 – PetarMI

0

JSPのケースでは
<%=request.getAttribute("param")%> 

であなたのsamplePage.jsp$ {のparam}を置き換える、

であなたの samplePage.jsp$ {のparam}を置き換えます
<%=request.getParameter("param")%> 
0

まず、変数sampleValueはあなたが渡している文字列を取得しているかどうかをチェックします以下のようなJSPから

文字列sampleValue = sampleModel.getMyValue();

のSystem.out.println(sampleValue)。

0

あなたのjspページのトップにあるjsp page.useの蛇のタグでは、isIgnoredがfalseであることを確認してください。

<%@ page isELIgnored="false" %>

また、あなたが${2 * 4}出力することで、これを確保することができますがJSPに8としてプリントです。

関連する問題