2011-08-07 66 views
1

我有一個字段struts2行動:private Long omradeId; 該字段有一個getter。struts2參數爲javascript

該動作發送給一個jsp,在該jsp中,我可以使用<s:property>標籤訪問該字段。這很好。

現在我還在jsp內部定義了一個<script>。在該腳本中,我想創建一個變量,它將構建一個帶有上述struts2字段作爲值的url。

<script type="text/javascript"> 
var url = "/path/to/action?parameter1="; 
</script> 

如何在等號(=)後面加上omradeId的值?我嘗試使用<s:property>,但沒有奏效。 有什麼建議嗎?

回答

1

這應該工作:

<script type="text/javascript"> 
var url = "/path/to/action?parameter1=<s:property value="omradeId">"; 
</script> 

如果沒有,你應該檢查該值不爲空值,並在你的Action類設置成功。

4

「/ path/to」將根據Web服務器而改變。爲了避免使用struts2 url標籤。

參見:http://struts.apache.org/2.x/docs/url.html

對於所謂的「行動」,在命名空間中的行動「/」與具有價值omradeId參數調用參數1,你就簡單的說:

<s:url namespace="/" action="action"> 
    <param name="parameter1" value="%{omradeId}"/> 
</s:url> 

把上述入JS變量我們有:

var url = "<s:url action="action"><param name="parameter1" value="%{omradeId}"/></s:url>"; 

使用上述將意味着您的應用程序可以安裝在不同的應用程序服務器上,而無需更改。

如果使用大量的參數,將var參數添加到s:url標記中給它起一個名稱,然後可以使用s:屬性在許多位置引用此字符串,那麼具有格式化XML比內聯更好標籤會保持乾淨。

<s:url namespace="/" action="action" var="myString"> 
    <param name="parameter1" value="%{omradeId}"/> 
</s:url> 

var url = "<s:property value="#myString"/>";