JSP中内嵌if语句为什么不起作用?

梦回从前 bangcle 高级架构专家  2010-09-24 09:42:39
在JSP中内嵌java代码if条件语句,但是并不起作用,请教各位大侠是为什么?小弟不胜感激涕零....
以下是JSP代码
<table width="100%" height="100%" border="0" cellpadding="0"
cellspacing="0" >
<%if((request.getAttribute("windFarmId")).equals("01")) %>
<%{ %>
<tr height="65" align="center" valign="bottom">
<td align="center" valign="bottom">
<input type="button" value="01#风电线" onClick="" />
</td>
</tr>
<tr height="90" align="center" valign="bottom">
<td align="center" valign="bottom">
<input type="button" value="02#风电线" onClick="" />
</td>
</tr>
<tr height="90" align="center" valign="bottom">
<td align="center" valign="bottom">
<input type="button" value="03#风电线" onClick="" />
</td>
</tr>
<tr height="90" align="center" valign="bottom">
<td align="center" valign="bottom">
<input type="button" value="04#风电线" onClick="" />
</td>
</tr>
<tr height="90" align="center" valign="bottom">
<td align="center" valign="bottom">
<input type="button" value="05#风电线" onClick="" />
</td>
</tr>
<tr height="90" align="center" valign="bottom">
<td align="center" valign="bottom">
<input type="button" value="06#风电线" onClick="" />
</td>
</tr>
<tr height="90" align="center" valign="bottom">
<td align="center" valign="bottom">
<input type="button" value="07#风电线" onClick="" />
</td>
</tr>
<tr height="70" align="center" valign="bottom">
<td align="center" valign="bottom">
 
</td>
</tr>
<tr height="130" align="center" valign="top">
<td align="center" valign="top">
<input type="button" value="08#风电线" onClick="" />
</td>
</tr>
<%} %>
<% if((request.getAttribute("windFarmId")).equals("02")) %>
<%{ %>
<tr height="65" align="center" valign="bottom">
<td align="center" valign="bottom">
<input type="button" value="01#风电线" onClick="" />
</td>
</tr>
<tr height="90" align="center" valign="bottom">
<td align="center" valign="bottom">
<input type="button" value="02#风电线" onClick="" />
</td>
</tr>
<tr height="90" align="center" valign="bottom">
<td align="center" valign="bottom">
<input type="button" value="03#风电线" onClick="" />
</td>
</tr>
<tr height="90" align="center" valign="bottom">
<td align="center" valign="bottom">
<input type="button" value="04#风电线" onClick="" />
</td>
</tr>
<tr height="90" align="center" valign="bottom">
<td align="center" valign="bottom">
<input type="button" value="05#风电线" onClick="" />
</td>
</tr>
<tr height="90" align="center" valign="bottom">
<td align="center" valign="bottom">
<input type="button" value="06#风电线" onClick="" />
</td>
</tr>
<tr height="90" align="center" valign="bottom">
<td align="center" valign="bottom">
<input type="button" value="07#风电线" onClick="" />
</td>
</tr>
<tr height="70" align="center" valign="bottom">
<td align="center" valign="bottom">
 
</td>
</tr>
<tr height="130" align="center" valign="top">
<td align="center" valign="top">
<input type="button" value="08#风电线" onClick="" />
</td>
</tr>
<%} %>.................
在这以后的代码和上面一样的一样,都是条件判断语句,但是问题出现了,条件判断不起作用,原本想根据不同的windFarmId,然后在不同页面里显示不同的按钮,但是现在所有的按钮都显示在同一个页面里了,请问这是为什么?可能是哪里出问题了呢?请大家帮帮忙,不胜感激!



注:windFarmId确定能够在页面获取到,我在action里setAttribite了。
...全文
422 点赞 收藏 23
写回复
23 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
kerioz 2010-09-25
jstl里面好像有个 c:if 比这个内嵌好用多了哦 只需要建项目时候勾选jstl版本 使用的时候引入对应taglib就好
回复
kerioz 2010-09-25
很久没这么写了看了还真有点陌生 建议楼主使用JSTL标签 如果添加了struts标签更好 可以 那个简单明了 不想这个括号什么的老多了 不小心就出问题了
回复
梦回从前 2010-09-25
[Quote=引用 20 楼 yb5191 的回复:]
既然页面都输出来了
还有什么问题??

楼主 if(){内容是一样的啊}
[/Quote]

哥们你说得对,我把}和 else if 分开了,导致程序无法辨识了,我把它们放在一起就好用了,太感谢了!
回复
yb5191 2010-09-25
既然页面都输出来了
还有什么问题??

楼主 if(){内容是一样的啊}
回复
梦回从前 2010-09-25
[Quote=引用 8 楼 zhang116868 的回复:]
楼主刚学jsp吗?

那样用<% %>感觉好乱,推荐用jstl比较好。
[/Quote]

用了,但是由于不太熟,老是出错,所以用最基本的写法来判断下,其实jstl也是封装了这些最基本的方法才实现那些功能的啊
回复
梦回从前 2010-09-25
[Quote=引用 7 楼 ayanami001 的回复:]
没进去就是if判断的问题
[/Quote]

看源代码之后,貌似if判断被识别了,那if判断还可能有别的问题吗?
回复
梦回从前 2010-09-25
[Quote=引用 6 楼 fhzengzhiwu 的回复:]
request.getAttribute("windFarmId"))把这个值在页面显示出来,就知道问题出现在哪里了。
应该是条件语句哪里不成立,所以才会出现这种情况!
[/Quote]

我在页面输出来了,结果确实是对的,如果单纯看条件的话,除非有语法错误,否则是对的....那还可能是别的错误吗?
回复
JavPer 2010-09-25
看不懂!蛋疼!
回复
梦回从前 2010-09-25
[Quote=引用 5 楼 gouxiongyaya 的回复:]
直接在页面上<%=request.getAttribute("windFarmId")%>看出现什么结果
判断没有问题,可能是你没赋上值
[/Quote]

我在页面上输出来了,结果确实是对的....
回复
jnhcd 2010-09-25
回帖可得10分
回复
yb5191 2010-09-25
写成
<%if(********)
{
%>
<%}
else if()
{

%>
<%}%> //if和{括号不要分开。试试,我没试过你这么写。不知道是不是这个问题

另把值先用变量取出来。look look。。

主要是什么错啊、、学习学习
回复
梦回从前 2010-09-25
[Quote=引用 4 楼 kebin0001 的回复:]
檢視網頁原始碼,如果<%...這些程式碼還在,那就是說你的 JSP 根本沒被執行,而是被當作一般 HTML了。
此時可參考 2樓說的,或是寫個簡單的測試頁面,找出沒執行的原因。

如果網頁原始碼裡面,那些<%if...都不見了,可是卻所有if的內容都被印出來,那就詭異了,
可以試著把 request.getAttribute("windFarmId") 的值印出來看看,應該也能找出原因。
[/Quote]

2楼的方法试验了,没起作用,另外我查看源文件了,没有if的代码段,应该被识别了,另外我在页面输出了 request.getAttribute("windFarmId")的值,确实是对的,那还可能是什么问题呢?谢谢!
回复
梦回从前 2010-09-25
[Quote=引用 3 楼 myisfei 的回复:]
99%if中的内容是没有满足的,你可以debug一下
[/Quote]

弱弱的问一下,JSP的内容怎么DEBUG呢?
回复
梦回从前 2010-09-25
[Quote=引用 2 楼 zcy9979420 的回复:]
JSP 页面上要加上
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
[/Quote]

加上了,但是没用....还可能是别的问题吗?
回复
peiqu123 2010-09-25
天回帖即可获得10分可用分
回复
海会圣贤 2010-09-25
楼主刚学jsp吗?

那样用<% %>感觉好乱,推荐用jstl比较好。
回复
微甜灬呼吸 2010-09-25
没进去就是if判断的问题
回复
小武茶庄 2010-09-25
request.getAttribute("windFarmId"))把这个值在页面显示出来,就知道问题出现在哪里了。
应该是条件语句哪里不成立,所以才会出现这种情况!
回复
gouxiongyaya 2010-09-25
直接在页面上<%=request.getAttribute("windFarmId")%>看出现什么结果
判断没有问题,可能是你没赋上值
回复
kebin0001 2010-09-25
檢視網頁原始碼,如果<%...這些程式碼還在,那就是說你的 JSP 根本沒被執行,而是被當作一般 HTML了。
此時可參考 2樓說的,或是寫個簡單的測試頁面,找出沒執行的原因。

如果網頁原始碼裡面,那些<%if...都不見了,可是卻所有if的內容都被印出來,那就詭異了,
可以試著把 request.getAttribute("windFarmId") 的值印出來看看,應該也能找出原因。
回复
加载更多回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2010-09-24 09:42
社区公告
暂无公告