JSTL和Servlet中的单选按钮

时间:2017-12-17 17:40:49

标签: jsp servlets el

我在JSP文件中有一些值,而且将单选按钮按到Servlet并输出它时出现问题。

输入文件位于此jsp:

<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在这里: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); }

然而,我没有在性领域接受任何祈祷(通过所有其他工作正常)。可能是什么问题?

1 个答案:

答案 0 :(得分:-1)

<强>理论
$ {}称为EL表达式。在里面你可以有变量。来自the oracle tutorial

  

Web容器评估表达式中显示的变量   通过根据行为来查找其价值   使用pageContext.findAttribute(字符串)。例如,在评估时   表达式$ {product},容器将在中寻找产品   页面,请求,会话和应用程序范围,并将返回它   值。如果找不到产品,则返回null。一个变量   匹配隐式对象中描述的隐式对象之一   返回隐式对象而不是变量的值。

现在让我们谈谈你的问题。

  1. 您不能拥有两个具有相同ID的html标签。
  2. 您收到空参数,因为它显然是空的(未定义)。你在哪里定义了malefemale变量?
  3. 我认为这是你想要实现的目标:

    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>
    

    选择&#39;男性&#39>后的控制台输出选项和提交:

      

    雄性