[Struts]在jsp里处理比较复杂的内容?

简介: 今天遇到一个问题,到现在也没能比较圆满的解决,是不是Struts在标签库上还不够完善呢。比如有一个界面是显示课件列表的,在最后一栏里可以对数据进行操作,如下所示: Code Name Author OP 10000001 风洞模型课件 刘金东 View Edit Delete 1000000.

今天遇到一个问题,到现在也没能比较圆满的解决,是不是Struts在标签库上还不够完善呢。比如有一个界面是显示课件列表的,在最后一栏里可以对数据进行操作,如下所示:

Code Name Author OP
10000001 风洞模型课件 刘金东 View Edit Delete
10000002 卡门涡阶课件 季铭义 View Edit Delete
10000003 复变函数课件 秦江 View Edit Delete
10000004 听力课件 郭长凯 View Edit Delete

现在希望当用户按删除时先弹出个确认框,提示“是否确认删除风洞模型课件”,用户可以选择确认或取消。其中“是否确认删除”是在资源文件里定义的(prompt.confirm.delete=是否确认删除{0}),“风洞模型课件”是课件的名称,课件bean名为"ware"。如果写成HTML,就是:

< a href = " "  onclick = " return confirm('是否确认删除风洞模型课件') " > Delete </ a >

但因为信息都是动态的,所以就有问题了。因为在<html:link>的onclick="..."里,"<%"必须紧跟在第一个单引号后才能正确解析,即不能写为onclick="return confirm('<%=str%>')"。所以,现在有两种方法实现所需要的功能:

1、不用<html:link>,直接用HTML的<a>标记:

< bean:define id = " toDel "  name = " ware "  property = " name "  type = " String " />
< a href = " delete.do?code=<bean:write name= " ware "  property= " code " /> "  
    onclick
= " return confirm('<bean:message key= " prompt.confirm. delete "  bundle= " root "  arg0= " <%= toDel %> " />'); " >
    
< bean:message key = " course.list.op.delete " />
</ a >

2、使用<html:link>,事先定义一个只含一个参数的script函数,代码如下:

< script language = " JavaScript " >
<!--
function  confirmDelete(str){
    
return  confirm(' < bean:message key = " prompt.confirm.delete "  bundle = " root "  arg0 = " '+str+' " /> ');
  }
-->
</ script >

然后在删除链接的地方这样写:

< bean:define id = " toDel "  name = " ware "  property = " name "  type = " String " />
< html:link action = " /delete "  paramId = " code "  paramName = " ware "  paramProperty = " code "  onclick = " <%= " return  confirmDelete( ' "+toDel+" ' ); " %> " >
    
< bean:message key = " course.list.op.delete " />
</ html:link >

这两种方法都能达到目的,我暂时使用了第2种用法,毕竟在struts程序的jsp里直接使用<a>标记有点别扭。我看了一下struts文档,能把资源中的{0}转换为实际内容的标签好象只有<bean:message>这一个,其实如果有办法让<bean:message>得到的内容放进某个bean里就很好办了,可惜……。

另外,没研究过EL标签库,不知道会不会有帮助。

本文转自博客园八进制的博客,原文链接:[Struts]在jsp里处理比较复杂的内容?,如需转载请自行联系原博主。

相关文章
|
6月前
|
JavaScript 前端开发 Java
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Jsp页面
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Jsp页面
|
JavaScript 前端开发 Java
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Jsp页面
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Jsp页面
|
Java 前端开发
struts jsp传值到action,乱码的解决方案
使用了Struts框架,前台写好了编码为utf-8 有一个页面一直action接收时参数就变为了乱码,像这样   通过txt修改文件编码,效果依旧。既然前端不行,只能在后台找方法,编码转换回来,在赋值前使用如下代码: String valueA="乱码,前台传过来的"; valueA=new String(valueA.
973 0
|
前端开发 Java JavaScript
struts/Servlet,action转到jsp后,路径问题(struts2,jsp路径,action路径,action跳转,相对路径,绝对路径)
问题:使用struts2,如何处理action的路径?还有,在action转到的jsp中,如何写js,css,图 片的路径?(例如访问 http://localhost/project/listUser.action后转到http://localhost/project/user /listUser.jsp,这时候浏览器还是停留在http://localhost/project/addUser.action。
1094 0
|
Java
jsp、struts取值方式
#list.some取出属性值。set的值 ${list.some}取出属性值 %{list.some}取出属性值并做判断转换,取出list里面的值   获取Bean的属性值,用于显示在页面中   JSP 语法      例子    ...
619 0
|
1月前
|
Java 容器
【学习笔记】Jsp与Servlet技术
【学习笔记】Jsp与Servlet技术
65 0