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

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

CodeNameAuthorOP
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>的οnclick="..."里,"<%"必须紧跟在第一个单引号后才能正确解析,即不能写为οnclick="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标签库,不知道会不会有帮助。

转载于:https://www.cnblogs.com/bjzhanghao/archive/2004/08/26/36764.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值