Search code examples
javajqueryjspstruts2ognl

passing property value using javascript


I am new to struts 2. I have a jsp page which will send a column ID to another jsp page which will send it to the action class where i will get the comments entered by user and return it to my second jsp page to display it as a popup to the user. problem is my javascript is not accepting the value of the column.

//THIS IS WHERE THE PROBLEM IS IN THE JAVA SCRIPT
    <display:column title="Commentaire" sortable="true" sortProperty="Commentaire" class="alerte_td_commentaire">                                                       
    <s:if test="#attr.row.Commentaire != null && #attr.row.Commentaire != ''">                          
    <a href='#' onclick='javascript:var xx = (%{#attr.row.id}).val(); CommenatireToGet(xx);'><img src='/img/icons/ico_comment.png'></a>                                     
    </s:if>                                 
    </display:column>

//THIS IS MY SECOND JSP PAGE
function CommenatireToGet(value){
    $('#divShowCommAcqui').dialog('option', 'position', 'center');
    $('#divShowCommAcqui').dialog('open');

    var path = buildURL("/valorisation/ajax/CommenatireToGet.do");
    $.getJSON(
        path,
        {idAlerte:value},
        function(json){
            $('#commentaireAqui').val=getElementbyId(json.hello);
        }   
    )
};
//THIS IS MY ACTION CLASS
public String getComment() throws ServiceException{
        jsonData = new LinkedHashMap<String, Object>();
        idAlerte= (Integer) getActionSession("idAlerte");
        Alerte alerte =svc.retrieve(idAlerte);
        if (alerte !=null){
            jsonData.put("hello",alerte.getCommentaire());
        }

        return SUCCESS;
    }

//THIS IS MY STRUS TAG
<action name="CommenatireToGet" class="ihm.valorisation.AlerteAction" method="getComment">
            <result name="success" type="json">
                <param name="root">jsonData</param>
            </result>                       
        </action>

Solution

  • You can't use OGNL expressions anywhere in the JSP, only in Stuts2 tag's attributes, even not all of them. So, change

    <a href='#' onclick='javascript:var xx = (%{#attr.row.id}).val(); CommenatireToGet(xx);'><img src='/img/icons/ico_comment.png'></a>
    

    to

    <a href='#' onclick='CommenatireToGet(<s:property value="%{#attr.row.id}"/>);'><img src='/img/icons/ico_comment.png'></a>