2010-05-11 44 views
0

我在JSP相當簡單的形式,看起來像這樣:如何使用jsp:useBean和jsp:setProperty獲取下拉值?

<form action="response.jsp" method="POST"> 
         <label>First Name:</label><input type="text" name="firstName" /><br> 
         <label>Last Name:</label><input type="text" name="lastName" /><br> 
         <label>Email:</label><input type="text" name="email" /><br> 
         <label>Re-enter Email:</label><input type="text" name="emailRe" /><br> 
         <label>Address:</label><input type="text" name="address" /><br> 
         <label>Address 2:</label><input type="text" name="address2" /><br> 
         <label>City:</label><input type="text" name="city" /><br> 
         <label>Country:</label> 
         <select name="country"> 
          <option value="0">--Country--</option> 
          <option value="1">United States</option> 
          <option value="2">Canada</option> 
          <option value="3">Mexico</option> 
         </select><br> 
         <label>Phone:</label><input type="text" name="phone" /><br> 
         <label>Alt Phone:</label><input type="text" name="phoneAlt" /><br> 
         <input type="submit" value="submit" /> 
        </form> 

但是,當我嘗試訪問我的Java類中選擇框的值,我得到空。我試着把它作爲一個字符串和一串字符串讀取,但似乎並沒有抓住正確的值。

將出現response.jsp看起來是這樣的:

<%@ page language="java" %> 
<%@ page import="java.util.*" %> 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<%! 
%> 
<jsp:useBean id="formHandler" class="validation.RegHandler" scope="request"> 
    <jsp:setProperty name="formHandler" property="*" /> 
</jsp:useBean> 
<% 
      if (formHandler.validate()) { 
%> 
<jsp:forward page="success.jsp"/> 
<% 
      } 
      else 
      { 
%> 
<jsp:forward page="retryReg.jsp"/> 
<%   } 
%> 

我已經有Java腳本的驗證中的地方,但我想確保我介紹了驗證和檢查非JS用戶。

RegHandler只是使用名稱字段來引用表單中的值。

任何想法如何才能訪問選擇框的值?

回答

1

在我的機器上工作。

package mypackage; 

public class Bean { 
    private String country; 

    public String getCountry() { 
     return country; 
    } 

    public void setCountry(String country) { 
     this.country = country; 
    } 
} 

<%@page pageEncoding="UTF-8"%> 

<jsp:useBean id="bean" class="mypackage.Bean" scope="request"> 
    <jsp:setProperty name="bean" property="*" /> 
</jsp:useBean> 

<!doctype html> 
<html lang="en"> 
    <head><title>SO question 2814402</title></head> 
    <body> 
     <form> 
      <select name="country"> 
       <option value="1">one</option> 
       <option value="2">two</option> 
       <option value="3">three</option> 
      </select> 
      <input type="submit"> 
      <p>Selected country: ${bean.country} 
     </form> 
    </body> 
</html> 

也許二傳手是假的?你檢查了服務器日誌嗎?

順便說一下,你考慮過servlets