[英]Set param value in first position of array bean
我想知道是否可以在bean字符串數組中設置url參數接收的屬性。
我有這個:
Bean,在您的FormHandler類中:
private String[] clientName;
JSP文件:
<dsp:setvalue bean="ClientFormHandler.clientName" paramvalue="clientName" />
這樣,我在屏幕上收到此錯誤:
****錯誤2016年7月6日星期三13:53:06 BRT嘗試設置/clientCom/app/formHandlers/ClientFormHandler.clientName的值時,發生此IllegalArgumentException:java.lang.IllegalArgumentException:參數類型不匹配
這不起作用,所以我嘗試了一下,但是也沒有成功...
<dsp:setvalue bean="ClientFormHandler.clientName[0]" paramvalue="clientName" />
我得到這個錯誤
****錯誤Wed Jul 06 13:55:34 BRT 2016 1467824134007 / atg / dynamo / servlet / dafpipeline / ProtocolSwitchServlet
atg.droplet.DropletException:如果屬性不是List且缺少索引屬性方法,則無法設置多值屬性的元素
我可以在不更改java類的情況下在JSP文件中執行類似操作嗎?
Tks。
我還沒有找到數組的示例,但是我建議您使用MVC架構
您可以通過以下方式設置bean參數:
1 /在您的JSP中添加一個表單,將所需的值放在隱藏的輸入中
<form method="post" action="MYSERVLET">
<input type="hidden" name="VAL" value="NEW_NAME"/>
<input type="submit" value="click"/>
</form>
2 /創建一個放置這些方法的bean
public class bean {
private String[] clientName ={"tt","bb","gg","ff","tt","gg"};//just for verification
public String[] getClientName() {
return clientName;
}
public void setClientName(String[] clientName) {
this.clientName = clientName;
}
public void NewVal(String newVal, int index){
this.clientName[index] = newVal;
}
public String getVal( int index){
return this.clientName[index] ;
}
}
3 /創建一個servlet(MYSERVLET)
將doPost更改為
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String val = request.getParameter("VAL");
bean Mybean= new bean();
Mybean.NewVal(val, 0);
System.out.println("--------------------"+Mybean.getVal(0));
}
結果:
--------------------NEW_NAME (in server logs)
數組bean的第一個位置更改為“ NEW_NAME”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.