2015-11-18 4 views
0

Мое намерение - изменить значение javascript jsp с помощью javascript на стороне клиента. Тег дает некоторое значение даты. Перед тем как сбрасывать значение, я вызываю функцию javascript и пытаюсь выполнить необходимые изменения и возвращая дату результата. Но неспособность обрабатывать jsp-тег и javascript в соответствии с моим требованием. Я сделал, как это ..Есть ли способ изменить значение пользовательского тега jsp с помощью javascript на clientside

<%@ 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. мы можем вызвать jsp некоторые теги внутри функции javascript, но вызов функции javascript внутри тега невозможен. Для вышеприведенного сценария я обернуваю значение отображаемого тега <div> и разместил этот тег внутри функции javascript и выполнил мои модификации на визуализированных данных, а затем установил результат как innerHTML того же <div> .. вот подход.

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