|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2008-05-09
JavaFlasher 写道 myoldman 写道 是的啊.我的版本是struts2-core-2.0.11.1.jar
我又换回 08 那个版本了.我怕他了. 希望以后版本能兼容这个 08 版本 兄弟,你改了以后是运行不出错了,但是没有达到预想的结果是吗? |
|
| 返回顶楼 | |
|
最后更新时间:2008-05-09
myoldman 写道 JavaFlasher 写道 myoldman 写道 是的啊.我的版本是struts2-core-2.0.11.1.jar
我又换回 08 那个版本了.我怕他了. 希望以后版本能兼容这个 08 版本 兄弟,你改了以后是运行不出错了,但是没有达到预想的结果是吗? 是的。 |
|
| 返回顶楼 | |
|
最后更新时间:2008-05-09
JavaFlasher, 你还是要升级到 2.0.11版本才行, 因为在 2.0.8的时候发现了一个严重的安全问题, 就是因为使用el导致的问题,所以还是建议你升级吧! 你刚才用%不行估计是你没有指定scope 你可以试着在前面加上 <s:if test="%{#request.param.kindId != null}"> 前提你这个param这个变量是放在request.
http://struts.apache.org/2.0.9/docs/release-notes-209.html |
|
| 返回顶楼 | |
|
最后更新时间:2008-05-09
嗯,楼上说的也有可能.要想确认param是一个action中的一个属性还是在request.
不过感觉应该不会把东西放到request中把? |
|
| 返回顶楼 | |
|
最后更新时间:2008-05-09
谢谢 2位 回复我的帖子。 经过你们的帮助。我现在 向前迈进了一大步 。但还是比较困惑 。
现在 我这样写 : <s:if test="%{kindId != 0}">
document.getElementById("kindId").value =${param.kindId};
</s:if>
这时候 可以出现我期待的效果。就是 地址栏上如果 有 kindId这个参数 。 那 下拉框 就可以被正确赋予值。 效果完全正确。没有任何 不满意的 地方。 --------------------------------------------------- 困惑的是我接下来做了 3个实验 发现 : <s:if test="%{kindId > 0}">
document.getElementById("kindId").value =${param.kindId};
</s:if>
<s:if test="%{kindId < 0}">
document.getElementById("kindId").value =${param.kindId};
</s:if>
<s:if test="%{kindId == 0}">
document.getElementById("kindId").value =${param.kindId};
</s:if>
这三种情况 不管地址栏上 出现什么情况 。 if 里面的 代码都不执行。 我特意加了 alert .都没有执行。 我很奇怪。 既然 kindId !=0 成立 。那 为什么 > , < == 这 3种情况却又没有一个能成立呢? |
|
| 返回顶楼 | |
|
最后更新时间:2008-05-09
试一下 <s:if test="%{#parameters.kindId != 0}">
要是还不行,你再看看是不是类型的问题,直接parameters里面拿出来的应该是String 类型的 |
|
| 返回顶楼 | |
|
最后更新时间:2008-05-10
还可以查一下web.xml的声明是什么样子的,改成下面这样试试看:
<?xml version="1.0" encoding="GBK"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 也就是使用Servlet 2.4, 如果是Servlet 2.3的话也可能引起楼主的问题. |
|
| 返回顶楼 | |
|
最后更新时间:2008-05-11
Leapiny 写道 还可以查一下web.xml的声明是什么样子的,改成下面这样试试看:
<?xml version="1.0" encoding="GBK"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 也就是使用Servlet 2.4, 如果是Servlet 2.3的话也可能引起楼主的问题. 我使用的是2.4 和你写的一样。 |
|
| 返回顶楼 | |
|
最后更新时间:2008-05-12
你可以用<s:debug/>来看kindId里的值和actionfeild里的错误信息,应该是类型转换的时候出错了.
|
|
| 返回顶楼 | |
|
最后更新时间:2008-05-12
JavaFlasher 写道 谢谢 2位 回复我的帖子。 经过你们的帮助。我现在 向前迈进了一大步 。但还是比较困惑 。
现在 我这样写 : <s:if test="%{kindId != 0}">
document.getElementById("kindId").value =${param.kindId};
</s:if>
这时候 可以出现我期待的效果。就是 地址栏上如果 有 kindId这个参数 。 那 下拉框 就可以被正确赋予值。 效果完全正确。没有任何 不满意的 地方。 --------------------------------------------------- 困惑的是我接下来做了 3个实验 发现 : <s:if test="%{kindId > 0}">
document.getElementById("kindId").value =${param.kindId};
</s:if>
<s:if test="%{kindId < 0}">
document.getElementById("kindId").value =${param.kindId};
</s:if>
<s:if test="%{kindId == 0}">
document.getElementById("kindId").value =${param.kindId};
</s:if>
这三种情况 不管地址栏上 出现什么情况 。 if 里面的 代码都不执行。 我特意加了 alert .都没有执行。 我很奇怪。 既然 kindId !=0 成立 。那 为什么 > , < == 这 3种情况却又没有一个能成立呢? 因为 kindId is null |
|
| 返回顶楼 | |







