Struts2:来自action的值在jsp中看不到,但是在jsp的javascript代码中可以看到它们

时间:2012-12-03 13:24:06

标签: java html jsp struts2 action

在行动中,我有一个有吸气剂的变量。

private String myActionVariable = "predefined....";
public String getMyActionVariable () {
    return myActionVariable;
}

在jsp中,我尝试以这种方式使用我的变量:

<input type="button" class="styledButton" 
       onclick="javascript: doAjax('myActionName',false);" 
       value="${myActionVariable}"

但是没有显示。但是,如果我从同一个jsp文件中包含的javascript代码输出此变量:

alert (${myActionVariable})

我会得到它的价值......

请问好吗? ...

2 个答案:

答案 0 :(得分:1)

您应该使用struts2标记。

<input type="button" class="styledButton" onclick="javascript: doAjax('myActionName',false);" value="${myActionVariable}">

而不是这个,请使用

<s:submit type="button" cssClass="styledButton" onClick="javascript: doAjax('myActionName',false);" value= "myActionVariable" />

答案 1 :(得分:1)

您可以使用带有<input/> Struts2标记的标准<s:property /> HTML代码作为值,如下所示:

<input type="button" class="styledButton" 
       onclick="javascript:doAjax('myActionName',false);" 
       value="<s:property value="%{myActionVariable}"/>"/>

或Struts2标签直接像这样:

<s:submit type="button" cssClass="styledButton" 
          onclick="javascript: doAjax('myActionName',false);" 
          value="%{myActionVariable}" />

请注意,使用Struts2标记时,class属性变为cssClass(而style变为cssStyle),而%{}是正确的OGNL语法,而是${}(即JSTL语法)


编辑:当使用Struts2时,忘记JSTL,你将不再需要它们。