有没有办法在客户端使用javascript更改jsp自定义标记值

时间:2015-11-18 06:07:19

标签: javascript jsp custom-tags

我的目的是在客户端使用javascript更改我的jsp自定义标记值。标签给出了一些日期值。在重新调整值之前,我调用了javascript函数并尝试对其进行必要的更改并返回结果日期。但是根据我的要求未能处理jsp标签和javascript。我确实喜欢这个..

<%@ taglib uri="/WEB-INF/c.tld" prefix="c" %>
<%@ taglib uri="/WEB-INF/fmt.tld" prefix="fmt" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<script>
var createdDate;
window.onload = function() {
createdDate = '${myBean.createdDate}';
    // modifying the createdDate 
}
function getModifiedDate(){
return createdDate;
}
</script>
<table>
.
.
.
<tr><td>
 <!-- I modified the code like this -->
<fmt:formatDate value='<script>getModifiedDate();</script>'  type="both" pattern="${viewDatePattern}" />
</td></tr>
.
.
.
</table>

以前是这样的..

<fmt:formatDate value="${myBean.created}" type="both" pattern="${viewDatePattern}" /> 

我使用我的更改执行了应用程序,但没有运气,请提供解决方案,以便在从脚本修改后通过标记呈现日期值。

1 个答案:

答案 0 :(得分:0)

我为此提出了一种解决方案,在此之前我在发布问题时错过了一些内容.. JSP及其标签(内置/自定义)与服务端有关,但与客户端浏览器无关。 JSP引擎根据我们在jsp页面中编写的标记编写servlet。 我们可以在javascript函数中调用jsp一些标签但是在标签内调用javascript函数是不可能的。 对于上面的场景,我用<div>包装渲染的标记值,并将此标记放在javascript函数中,并对渲染的数据进行修改,然后将结果设置为相同<div>的innerHTML。这是方法..

  <div id="requestDateId" style="height: 5px;">
    <fmt:formatDate value="${myBean.created}" type="both" />
    </div>   

内部脚本..

<script>
  window.onload = function() {
    var requestDate = document.getElementById("requestDateId").innerHTML;
    if(requestDate)
    document.getElementById("requestDateId").innerHTML = foo(requestDate);
  }
  function foo(requestDate){
     // my logic 
    return requestDate;
  }
</script>