2017-12-17 33 views
0

JSPファイルにいくつかの値があります。サーブレットにラジオボタンを押して出力する際に​​問題があります。JSTLとサーブレットのラジオボタン

<label for="phone">Phone: </label> 
    <input type="text" name="phone" id="phone" value="${phone}"><br/><br/> 

    <input type="radio" name="sex" id="sex" value="${male}">Male 
    <input type="radio" name="sex" id="sex" value="${female}"/>Female<br/><br/> 

そしてServlerはここにある::

入力ファイルは、このJSPであるpublic static RequestNewEmployee fromRequestParameters(HttpServletRequest request) { return new RequestNewEmployee( request.getParameter("firstName"), request.getParameter("lastName"), request.getParameter("email"), request.getParameter("phone"), request.getParameter("sex")); } public void setAsRequestAttributes(HttpServletRequest request) { request.setAttribute("firstName", firstName); request.setAttribute("lastName", lastName); request.setAttribute("email", email); request.setAttribute("phone", phone); request.setAttribute("sex", sex); }

しかし、私はセックスのフィールドで任意のpraramentrを(throught他のすべてが正常に動作し)受信しません。何が問題なのでしょうか?

答えて

-1

理論
$ {}はEL式と呼ばれます。内部には変数があります。 the oracle tutorialから:

Webコンテナは PageContext.findAttribute(文字列)の動作に応じてその値を調べることによって、表現 に現れる変数を評価します。たとえば、 という式$ {product}を評価すると、コンテナは ページのリクエスト、セッション、およびアプリケーションのスコープで商品を探し、 という値を返します。 productが見つからない場合、nullが戻されます。 が暗黙オブジェクトに記載されている暗黙オブジェクトの1つと一致する変数は、 は変数の値ではなく暗黙のオブジェクトを返します。


は今、あなたの問題について話をすることができます。

  1. 同一のidを持つ2つのhtmlタグを使用することはできません。
  2. 空のパラメータは、明らかに空です(定義されていません)。変数malefemaleをどこで定義しましたか?

私は、これはあなたが達成しようとしているものだと思う:

form.jsp

<%@ page contentType="text/html;charset=UTF-8" %> 
<html> 
<head> 
    <title>Title</title> 
</head> 
<body> 
    <form action="/formServlet"> 
     <input type="radio" name="sex" id="sexChoice1" value="male">Male 
     <input type="radio" name="sex" id="sexChoice2" value="female"/>Female<br/><br/> 
     <input type="submit" value="submit"> 
    </form> 
</body> 
</html> 

FormServlet

public class FormServlet extends HttpServlet { 
    @Override 
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) { 
     System.out.println(req.getParameter("sex")); 
    } 
} 

web.xmlの

<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5"> 
    <servlet> 
     <servlet-name>FormServlet</servlet-name> 
     <servlet-class>com.artmal.controller.FormServlet</servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>FormServlet</servlet-name> 
     <url-pattern>/formServlet</url-pattern> 
    </servlet-mapping> 
</web-app> 
'男性' オプションを選択し、提出後の

コンソール出力:

男性