日期:2014-05-18  浏览次数:20762 次

急:关于<html:select property="name" />的问题,在线等
直接进入主题:如下代码
<html:form   action= " ">
        <html:select   property= "ptName ">
                <html:options   name= "ptName.value "   labelName= "ptName.label "   />
        </html:select>
</html:form>

其中,ptName.value和pt.label的值都是通过request设定,
该画面打开显示的时候很正常( <html:select>   也显示正常)
但是当提交的时候显示javax.servlet.ServletException:   Cannot   find   bean   under   name   ptName.value   的错误
请问为什么?




------解决方案--------------------
<html:select property= "personnelId ">
<html:option value= " "> 请选择 </html:option>
<html:options collection= "personList " property= "personId " labelProperty= "personName "/>
</html:select>
html:options自动帮你迭代personList中的内容,前提是personList是Collection类型的,而且封装的是一个包含personId,personName属性的对象
property显示的是value,labelProperty显示的是页面看到的内容
------解决方案--------------------
把你的页面都显示出来
------解决方案--------------------
是你的form没有指定action的问题吧.在action的配置里指定了哪个form
------解决方案--------------------
你的Action配置中没有指定scope属性吧?在Struts1.x中Action默认是在session中的,所以你用request不好使哦!只要设置scope= "request "就应该可以了哦!谢谢!
------解决方案--------------------
光看你的贴出来的jsp代码,我的理解应该是有一个集合,里面放了数个Bean对象ptName,每个ptName里有value和label属性值,可以试试下面页面代码:

<html:form action= "actionName ">
<html:select name= "ptName ">
<html:options property= "value " labelProperty= "label " />
</html:select>
</html:form>

或者可以试试:
<html:form action= "actionName ">
<html:select property= "select1 ">
<html:options collection= "test " property= "value " labelProperty= "label " />
</html:select>
</html:form>
test是你request范围内的集合,要在java代码里赋这个集合,如List test=new ArrayList(50),然后把ptName这个Bean不断加到test里
这里的name= "select1 "是你页面上可以引用该下拉框所选值的名称,可以任意取一个名字

欢迎继续讨论!
------解决方案--------------------
<html:options name= "ptName.value " labelName= "ptName.label " />
把ptName.value改成VALUE1
在在你相对应的FORM-BEAN 加一个VALUE1加一个SET GET方发
试一下行不行