使用javascript传递属性值

时间:2013-08-01 08:22:47

标签: java jquery jsp struts2 ognl

我是struts 2的新手。我有一个jsp页面,它会将一个列ID发送到另一个jsp页面,该页面将把它发送到动作类,我将获取用户输入的注释并将其返回到我的第二个jsp页面将其显示为用户的弹出窗口。问题是我的javascript不接受列的值。

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

1 个答案:

答案 0 :(得分:1)

您不能在JSP中的任何位置使用OGNL表达式,只能在Stuts2标记的属性中使用,甚至不能全部使用它们。所以,改变

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

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