开发者社区> 青夜之衫> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

[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,就是:

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

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

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

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

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

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

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

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

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

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

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
编写Java程序,在维护英雄数据的业务过程中复用数据库操作封装类
编写Java程序,在维护英雄数据的业务过程中复用数据库操作封装类
24 0
Java 近期新闻:虚拟线程、JReleaser 1.0、Loom 项目、关于 Spring4Shell 的供应商声明
Java 近期新闻综述,包括来自 OpenJDK、JEP 425、JDK 19、Loom 项目的 19-loom+5-429 构建版本、Jakarta EE Starter 实用程序、Spring 里程碑及小版本、Payara 和 JetBrains 关于 Spring4Shell 的声明、JReleaser 1.0、Helidon 2.5.0、JHipster 7.8.1、Hibernate Search 6.1.4、Kotlin 1.6.20 和 JDKMon 17.0.24 等的新特性。
88 0
JS的对象数组去重处理(二十)
JS的对象数组去重处理(二十)
88 0
Spring Boot中使用AOP统一处理Web请求日志
Spring Boot中使用AOP统一处理Web请求日志
74 0
使用CSS属性处理前端开发中长文本造成的内容显示重叠问题
使用CSS属性处理前端开发中长文本造成的内容显示重叠问题
37 0
[springboot]Spring Boot中使用AOP统一处理Web请求日志
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。
4762 0
Selenium2+python自动化26-js处理内嵌div滚动条
前言     前面有篇专门用js解决了浏览器滚动条的问题,生活总是多姿多彩,有的滚动条就在页面上,这时候又得仰仗js大哥来解决啦。 一、内嵌滚动条     1.下面这张图就是内嵌div带有滚动条的样子,记住它的长相。
1663 0
Spring Boot中使用AOP统一处理Web请求日志
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是Spring框架中的一个重要内容,它通过对既有程序定义一个切入点,然后在其前后切入不同的执行内容,比如常见的有:打开数据库连接/关闭数据库连接、打开事务/关闭事务、记录日志等。
1708 0
ASP.NET中数据控件中的LinkButton控件点击时更换颜色
在一些网站上常看见如上图的效果,点击的改变颜色,换一个点击,原先的颜色恢复。 1.
1084 0
+关注
1040
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载