五 关于由传入的参数来判断性别,且使与参数相应的性别被选中的问题
<td align="right"><bean:message key="性别"/></td>
<logic:equal name="user" value="0">
<td align="left">
<html:radio property="sex" value="0"/>男
<html:radio property="sex" value="1"/>女
</td>
</logic:equal>
<logic:equal name="user" value="1">
<td align="left">
<html:radio property="sex" value="1"/>男
<html:radio property="sex" value="0"/>女
</td>
</logic:equal>
这里其实是将在参数不同的情况下,将value的值进行了调换,在页面上可以达到需要的效果,但是假如要对性别进行修改,则在对应的Action中还要进行处理,也就是当由性别为女改为性别为男时,在Action中对sex要进行处理,当sex=0时,使sex=1,当sex=1时,使sex=0
<html:radid>中没有checked,所以不能简单套用html语法
这个问题困扰了我相当长的一段时间,因为我觉得struts框架没有理由搞得比html语法还不好用的啊,但是偏偏的确如此,我至少目前这样认为,在radio选中方面,struts是没有html方便的,我在网上也搜索了比较久,但从来没见到过一个说得清楚的,甚至见到一些错误的答案,还自以为正确,这让我感到可笑与悲哀,比如,在我发的贴的回复中,有个好心人说,这个要在Action里设置,但是我左试右试,还是不行;后来见到一个结了贴的帖子,有个方法,如下:
//如果degreed==初级的话
<logic:equal name="degree" value="primary">
<html:radio property="teachertitleradiogroup" value="primary" checked />初级
<html:radio property="teachertitleradiogroup" value="middle"/>中级
<html:radio property="teachertitleradiogroup" value="high"/>高级
</logic:equal>
<logic:equal name="user" value="0">
<td align="left">
<html:radio property="sex" value="0"/>男
<html:radio property="sex" value="1"/>女
</td>
</logic:equal>
<logic:equal name="user" value="1">
<td align="left">
<html:radio property="sex" value="1"/>男
<html:radio property="sex" value="0"/>女
</td>
</logic:equal>
这里其实是将在参数不同的情况下,将value的值进行了调换,在页面上可以达到需要的效果,但是假如要对性别进行修改,则在对应的Action中还要进行处理,也就是当由性别为女改为性别为男时,在Action中对sex要进行处理,当sex=0时,使sex=1,当sex=1时,使sex=0
<html:radid>中没有checked,所以不能简单套用html语法
这个问题困扰了我相当长的一段时间,因为我觉得struts框架没有理由搞得比html语法还不好用的啊,但是偏偏的确如此,我至少目前这样认为,在radio选中方面,struts是没有html方便的,我在网上也搜索了比较久,但从来没见到过一个说得清楚的,甚至见到一些错误的答案,还自以为正确,这让我感到可笑与悲哀,比如,在我发的贴的回复中,有个好心人说,这个要在Action里设置,但是我左试右试,还是不行;后来见到一个结了贴的帖子,有个方法,如下:
//如果degreed==初级的话
<logic:equal name="degree" value="primary">
<html:radio property="teachertitleradiogroup" value="primary" checked />初级
<html:radio property="teachertitleradiogroup" value="middle"/>中级
<html:radio property="teachertitleradiogroup" value="high"/>高级
</logic:equal>
//如果degreed==中级的话
<logic:equal name="degree" value="middle">
<html:radio property="teachertitleradiogroup" value="primary" />初级
<html:radio property="teachertitleradiogroup" value="middle" checked />中级
<html:radio property="teachertitleradiogroup" value="high"/>高级
</logic:equal>
。。。。。。
这个帖子得到了全部的分数50分,肯定回帖人和发贴人都认为这个是对的了,但是我就感到了悲哀,struts里面<html:radio>明明是没有checked的,然而这里却偏偏用了checked,且自以为对,我真想问问这个发贴人和回帖人,你们经过实践检验过了吗??
<logic:equal name="degree" value="middle">
<html:radio property="teachertitleradiogroup" value="primary" />初级
<html:radio property="teachertitleradiogroup" value="middle" checked />中级
<html:radio property="teachertitleradiogroup" value="high"/>高级
</logic:equal>
。。。。。。
这个帖子得到了全部的分数50分,肯定回帖人和发贴人都认为这个是对的了,但是我就感到了悲哀,struts里面<html:radio>明明是没有checked的,然而这里却偏偏用了checked,且自以为对,我真想问问这个发贴人和回帖人,你们经过实践检验过了吗??
六、Cannot find bean xxxx in any scope
造成这种错误的有几种原因,我就只说一种网上比较少的原因:
往往是直接在浏览器中访问JSP页面造成的;如果在jsp页面中有对bean的引用,而直接在jsp访问的话就会报错了,struts是不允许这样做的。
错误引用形式为:
http://127.0.0.1:8080/test/test.jsp
正确引用形式为:
http://127.0.0.1:8080/test/test.do(后缀随你定义的不同而不同)