【问题标题】:JSP page not populating the formBean property associated with <html:select> <html:option>JSP 页面未填充与 <html:select> <html:option> 关联的 formBean 属性
【发布时间】:2011-09-29 11:17:46
【问题描述】:
<html:select property="fileLocation">
  <%
    ArrayList uploadLocationLookUp = null;
    uploadLocationLookUp = (ArrayList) request.getSession().getAttribute("uploadLocation");
    if (uploadLocationLookUp.size() != 0) {
        for (int i = 0; i < uploadLocationLookUp.size(); i++) {
            LookUpBean lookUpBeanItems = (LookUpBean) uploadLocationLookUp.get(i);
  %>
    <html:option value="<%=lookUpBeanItems.getLookUpCode()%>">
      <%= lookUpBeanItems.getLookUpCode() %>
    </html:option>
  <% }} %>
</html:select>

我正在使用 LookUpBean 填充 select 标记中的选项,该标记与具有属性 fileLocation 的 formBean 相关联。

虽然所有其他属性都在 formBean 中填充属性,但此属性不是。我还尝试在我的操作类中使用 request.getParameter("fileLocation") 来获取它,但它不起作用。

谁能注意到这段代码并指出任何可能被遗漏的愚蠢错误?还有其他我可能遇到的领域/问题吗?快速响应将非常受欢迎。谢谢


成功了 :) 不知道为什么:(

我所做的只是重构代码并重新排列表单上的输入元素。一旦我将流氓&lt;html:select&gt; 放在我的jsp 上的一段java 代码之后,它就像一个魅力。谁能指出我做错了什么以及为什么在我重新排列表单元素后它会起作用?

【问题讨论】:

  • ActionForm 是否包含fileLocation 属性?标记是否按预期呈现?
  • @Dave:fileLocation 属性在 ActionForm 中。标记正确呈现。不知道我错在哪里:(

标签: java jsp struts


【解决方案1】:

如果fileLocationlookUpCode 属性都是字符串,我看不出这段代码有什么明显错误。

一个提示,您应该能够通过使用html:options 标签来消除scriptlet 代码:

<html:select property="fileLocation">
    <html:options collection="uploadLocation" property="lookUpCode" labelProperty=""lookUpCode"/>
</html:select>

【讨论】:

  • 也试过&lt;html:options&gt;。 html 渲染正确,request/FormBean 仍然没有得到任何值。
  • 令我惊讶的是,该表单中的所有其他属性都已正确传递。
猜你喜欢
  • 1970-01-01
  • 2014-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-25
相关资源
最近更新 更多