我的目的是在客户端使用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}" />
我使用我的更改执行了应用程序,但没有运气,请提供解决方案,以便在从脚本修改后通过标记呈现日期值。
答案 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>