2015-11-18 31 views
0

我的意圖是在客戶端使用javascript更改我的jsp自定義標記值。該標籤給出了一些日期值。在重新調用該值之前,我正在調用JavaScript函數,並試圖對其進行必要的更改並返回結果日期。但未能按照我的要求處理jsp標記和javascript。我不喜歡這個..有沒有什麼辦法在客戶端使用javascript更改jsp自定義標記值

<%@ 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

我想出了一種解決方案,在此之前,我在發佈問題時錯過了一些東西。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> 
相關問題