菜鸟求助,大婶显灵....

rihaduo202 2013-05-20 06:46:14
本人菜鸟,自学一段时间,刚找了份工作糊口...

老鸟们分给任务,让我修改,刚部署运行,结果各种异常...

仔细看异常信息,发现好多都是jsp空指针等等,在看代码:

<%
UserBean userBean = (UserBean)session.getAttribute("user");
if (null != userBean)
{
%>
<a href="<%=basePath%>order!toUpload.action"
title="点击此按钮,到下一步确认购买信息。"
class="J_ClickCatcher J_LinkBuy">立刻冲印
<b class="J_ClickCatcher J_LinkBuy"></b>
</a>
<%
}
else
{
%>
<a href="javascript:alert('未登录,请登录!');location.href='<%=basePath%>login.jsp';"
title="点击此按钮,到下一步确认购买信息。"
class="J_ClickCatcher J_LinkBuy">立刻冲印
<b class="J_ClickCatcher J_LinkBuy"></b>
</a>
<%
}
%>

jsp页面包含了很多类似于这种代码。
记得视频教程刚开始学的时候,也是这种写法,但后来慢慢都去掉了 <% %>的,不提倡这么使用。
请教老鸟,老鸟回答,这种用法也是可以的,没规定说不许这么用。
问题来了,jsp页面到底该不该出现<% %>? 为什么?如果不,那用什么来替代?
OGNL 表达式? JSTL ? EL ?
忘大婶们,帮帮解决困惑...
...全文
233 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
seqwait 2013-05-23
  • 打赏
  • 举报
回复
引用 1 楼 fei_demon 的回复:
Java中只是说不建议在jsp页面编写Java代码,因为比较乱,又麻烦,又容易出错,所以不建议HTML标签和Java代码混在一起。只是在我们写代码时能不用尽量不用,但有些时候也是避免不了的。通常都用你说的那几个代替。
正解
rihaduo202 2013-05-23
  • 打赏
  • 举报
回复
引用 12 楼 zslinyuanwz0213 的回复:
那就用JSP 做控制器嘛 有什么关系 反正可用 那个 就像 系统输出一样 各种自己拼接 还有 如果 你的老鸟一定要这么写 亲 听我一句 大骂一声老子不干了 再换一家(因为:全国人民都不用JSP作控制器了 你老鸟还要 你用 如果时间长了 你就别IT界淘汰了)
+1 项目虽然是 spring + struts2 + BoneCP 做的,但好多地方都是直接拿JSP做控制器的。 例如:需要一个下载功能,直接写了个页面download.jsp,里面纯Java代码.... 页面上一个HTML元素都没有,为啥还要写页面,直接后台写个类不可以? 或许是新手的原因吧,越来越糊涂,乱套了都...
Intboy 2013-05-22
  • 打赏
  • 举报
回复
jsp中没有允许不允许使用java代码,只是规范问题,如果项目已经成熟,改的话成本谁来管控?
飞舞的锄头 2013-05-22
  • 打赏
  • 举报
回复
<% %>和el表达式 xx是scope.setAttribute("xx")中的xx,比如我在request放入“hello”,下面分别通过jsp脚本和el表达式,在jsp中显示这个值: hello(jsp脚本):<%=request.getAttribute("hello") %><br> hello(el表达式,语法:$和{}):${hello }<br> hello(el表达式,el的内置对象pageScope,requestScope,sessionScope,applicationScope)<br> 如果不指定范围,它的搜索顺序为pageScope~applicationScope):${requestScope.hello }<br> hello(el表达式,指定范围从session取得):${sessionScope.hello }<br>
rihaduo202 2013-05-22
  • 打赏
  • 举报
回复
谢谢各位耐心解答,现在我是向项目负责人妥协了,但这不代表我认同他的观点!我要努力超过他,用技术说服他,等着吧,我是菜鸟我怕谁!
太灰浪 2013-05-22
  • 打赏
  • 举报
回复
那就用JSP 做控制器嘛 有什么关系 反正可用 那个 就像 系统输出一样 各种自己拼接 还有 如果 你的老鸟一定要这么写 亲 听我一句 大骂一声老子不干了 再换一家(因为:全国人民都不用JSP作控制器了 你老鸟还要 你用 如果时间长了 你就别IT界淘汰了)
rihaduo202 2013-05-21
  • 打赏
  • 举报
回复
被老鸟欺压... 提的意见不采纳,都得按照他的来...
lt3 2013-05-21
  • 打赏
  • 举报
回复
这个项目应该是早期的, 估计jsp页面中大多都是使用Java代码的, 如果要想改成el, jstl, ognl之类标签的话, 工作量确实很大, 所以没有必要去改, 他肯定是有他的考虑的!再者你就当是练练手, 而且最主要的并不是去抠这些技术, 而应该是业务流程, 当然技术点并不是不重要! 再说了这种写法, 你之前不还写过, 应该是比较熟悉, 适应起来也比较快!等以后有新的项目的话, 就不会再让你用这种写法了, 如果还真是这样的话, 那也该走了!
  • 打赏
  • 举报
回复
一般用EL表达式和JSTL标签来解决。 比如取引用路径: ${pageContext.request.contextPath}就行了 处理逻辑直接用JSTL标签: <c:if >
xianwangkai 2013-05-21
  • 打赏
  • 举报
回复
我觉得你还是按照你们项目负责人的搞吧,可能你那个项目是个早期项目,如果要大修改的话,时间可能不够,所以我觉得还是先忍,如果忍不了,就走!呵呵!
我就是东 2013-05-21
  • 打赏
  • 举报
回复
公司项目外包给别人,结果页面全是Java代码! 泪奔啊,所以还是在jsp里面别出现java代码了, jstl,jsf,很多的!
Mycifeng 2013-05-21
  • 打赏
  • 举报
回复
小脚本的方式虽然有些乱,但是有些时候确实不标签好用的多如果不用小脚板去写的话,也可以用EL 表达式 struts2 的S标签 OGNL 很多方式 甚至可以用dwr 来做 只要你不嫌麻烦的话。
matzz 2013-05-20
  • 打赏
  • 举报
回复
不是说不能用,将代码逻辑全部塞在jsp中会显得很凌乱,后期不好维护,所以才出现了MVC,每一层各司其职,容易维护。 一般页面会使用JSTL、EL、Freemarker等等,但如果是遗留项目,那么jsp直接写脚本也无所谓了
fei_demon 2013-05-20
  • 打赏
  • 举报
回复
Java中只是说不建议在jsp页面编写Java代码,因为比较乱,又麻烦,又容易出错,所以不建议HTML标签和Java代码混在一起。只是在我们写代码时能不用尽量不用,但有些时候也是避免不了的。通常都用你说的那几个代替。

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧