2012-07-23 74 views
0

我需要填充列表框,文本框的值..幾乎所有來自我的servlet的表單輸入元素。因爲將對象發送到JSP頁面並在那裏填充輸入元素的值(使用任何標記庫JSTL),我發現它很困難。使用servlet填充表單輸入元素的值

有沒有辦法從servlet本身設置所有輸入元素值?例如,如果我需要設置文本框的值,然後在我的servlet

TextFieldBean tf = new TextFieldBean("userName"); 
tf.setValue("Test"); 

在我的jsp頁面

<input type="text" name="userName"> 
+0

這是否有任何框架可以做到這一點? – Dilip 2012-07-24 09:00:57

回答

1

這就是所有的MVC框架(我知道),允許這樣做。下面是與條紋的例子:

// in the Stripes action: 
public Resolution displayForm() { 
    this.userName = "Test"; 
    return new ForwardResolution("/displayForm.jsp"); 
} 

// in the JSP 
<s:form beanClass="com.foo.bar.SubmitFormAction" method="post"> 
    User Name : <s:text name="userName"/> 
</s:form> 

MVC框架有自己的學習曲線,但它們提供了巨大的業務(數據綁定是其中之一)。選擇一個,學習:Stripes,Spring MVC,Play,...有幾十個。我喜歡Stripes的簡潔和優秀的設計。

1

如果因爲某些原因不想使用MVC框架,請使用Apache Commons BeanUtils

BeanUtils.populate(bean, request.getParameterMap()); 

就是這樣。您只需確保bean屬性名稱與請求參數名稱完全匹配。然而,MVC框架在應用請求參數(如轉換,驗證,事件監聽,執行動作,動態呈現等)之後提供了更多其他優勢。因此,不要將幾個單獨的庫組合在一起以使生活更輕鬆,而只需要一個多功能MVC框架即可。除了JB Nizet提到的基於請求的MVC框架之外,還有基於組件的MVC框架,這些框架抽象得更多(如消除HTML/CSS/JS boilperlate),例如JSF

+0

讓我解釋一下我的場景。我將調用webservices從數據庫接收數據。例如,如果我從Web服務中檢索Person數據,我需要將這些數據(可能只是xml或JAXBObject)發送到JSP頁面,我需要爲我的輸入元素填充值。如果人員編輯頁面有國家列表框,那麼我需要發送Country XML值(從Countrywebservice獲取)並填充value.Here只有我發現它很難。因此,如果任何可用的選項像我可以填充我的值從Java類本身輸入元素。我希望它清楚 – Dilip 2012-07-27 09:06:44