JSTL中EL标签与Struts2中OGNL标签在JSP页面上的区别

      

       通常情况下:在进行相关数据操作时(CRUD)时,一般有2种情况可以选择,就是使用Struts2标签或者使用EL标签。

    有一点需要注意的是,在JSP页面上,EL标签和OGNL标签不能混在一起乱用。

    例如:

    在后台中,根据页面传过来的id ,拿到了相关记录的结果集了:

    imageMeta = adAssetsService.getImageMetaById(Integer.parseInt(id));

    但是,如果在JSP页面上是如此写法:

    <td class="td_label">XXXXX:</td>
    <td class="td_input">

    <input type="text" class="e_input" name="imageMeta.description"/>

    </td>

    那么在页面上是取不到值的,也就是说,当程序经过了后台逻辑调转到前台JSP页面时,它的相关输入框是空白。如果换成了:

   <s:TextField  class="e_input"  name="imageMeta.description">

   在JSP页面上就会现实出于数据库表单想对应的数据

   之所以出现如上区别,就是关于EL 和 Struts2标签的区别了。  

   如果想用EL表达式也显示数据,则应该对其进行相应的修改格式:

   <input type="text" class="e_input" value="${imageMeta.description}name="${imageMeta.description}"/>

   这样就会在页面上显示对应的值了。

   需要注意的是:

   其一:在EL标签库中,读取的值必须要放在request中, 

   它是从request中读取值,在后台中,必须要把整个结果集都放到requers中。

   如例子:

    imageMeta = adAssetsService.getImageMetaById(Integer.parseInt(id));

    request.setAttribute("imageMeta", imageMeta);

    只有放在了request中,EL表达式才能在JSP页面中读取出来。

    其二:在页面上显示的值,在EL表达式中,它用value=”${XX.XX}”,表示。   

    如果,写只写一个name=”${XXX.XX}”,它的值也是为空的,

   必须有value=””这个属性。

   而关于EL中,name属性意思,跟struts2中关于<textfield/>中的name作用是相同的。

    所以,在一般情况,要使用html 中的EL表达式,

    就应该同时把value=””,和name=”” 同时写上。



 

  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值