2013-08-06 70 views
2

我想在Struts 2中將值pat的文本字段傳遞給getautocomplete.action。這裏我使用TINY.box來彈出下一頁。將id值傳遞給動作類

<s:textfield name="pat" id="pat"/> 

<script type="text/javascript"> 
    T$('tiny_patient').onkeypress = function(){ 
    TINY.box.show('getautocomplete.action',1,0,0,1) 
    } 
</script> 

回答

0

如果你想根據以往的對話框選擇,或者你必須使用AJAX任何服務器端程序來填充盒。

在你的動作類,寫一個getter,setter方法變量名爲「拍拍」像這樣:

私人串拍;

public getPat() 
{ 
......... 
} 

public setPat(String pat) 
{ 
this.pat=pat; 
} 

,改變

TINY.box.show('getautocomplete.action',1,0,0,1) 

TINY.box.show('getautocomplete.action?pat="xyz"',1,0,0,1) 

希望,除非你有關於Ajax的想法,這將解決您的問題。

1

您需要將ID pat及其值添加到您傳遞給show函數的url。例如

var url = 'getautocomplete.action?pat=' + $("#pat").val(); 

然後,您可以在您的show功能使用變量url

您還需要在操作類中添加以下內容。這也取決於java的pat類型。我使用String

private String pat; 

public String getPat() 
{ 
    return pat; 
} 

public void setPat(final String value) 
{ 
    this.pat = value; 
} 

注意 建議使用,讓您的網址如下而不是硬編碼的擴展

<s:url id="url_variable" namespace="/namespace_of_action" action="action_name" /> 
var url = '<s:property value="url_variable" />?pat=' + $("#pat").val(); 
0

嘗試

<s:textfield name="pat" id="pat"/> 
<script type="text/javascript"> 
    document.getElementById("tiny_patient").onkeypress = function(e){ 
    TINY.box.show("<s:url action='getautocomplete'/>"+"?pat="+document.getElementById("pat").value,1,0,0,1) 
    } 
</script> 
+0

採用像'document.getElementById'這樣的普通javascript通常是不可取的。相反,使用JavaScript庫,如「jQuery」。 –

+0

@UchennaNwanyanwu是的,但OP沒有在問題中使用JQuery。即使你使用JQuery,你的答案也不會處理'keypress'事件。 –