2016-07-06 79 views
0

我想知道是否可以在Bean String Array中設置由url參數接收的屬性。將參數值設置爲陣列bean的第一個位置

我有這樣的:

豆子,你FormHandler類:

private String[] clientName; 

的JSP文件:

<dsp:setvalue bean="ClientFormHandler.clientName" paramvalue="clientName" /> 

就這樣,我在我的屏幕上這個錯誤:

**** Error Wed Jul 06 13:53:06 BRT 2016嘗試設置/clientCom/app/formHandlers/ClientFormHandler.clientName的價值,這 拋出:IllegalArgumentException發生:java.lang.IllegalArgumentException異常: 參數類型不匹配

這不是工作,所以我tryed這一點,但沒有成功太...

<dsp:setvalue bean="ClientFormHandler.clientName[0]" paramvalue="clientName" /> 

,我得到這個錯誤

****錯誤週三年7月6 13時55分34秒BRT 2016 1467824134007/ATG /發電機/ servlet的/ dafpipeline/Protoco lSwitchServlet
atg.droplet.DropletException:無法設置一個多值 道具erty的元素,如果屬性不是一個列表,如果缺少一個索引 屬性方法

我可以做這樣的事情在一個JSP文件,無需更改java類?

Tks。

回答

0

我還沒有找到一個數組的例子,但我建議你用MVC架構的工作

你可以設置你的bean參數:

1 /在你的JSP添加一個形式,你把您在隱藏的輸入所需的值

<form method="post" action="MYSERVLET"> 
    <input type="hidden" name="VAL" value="NEW_NAME"/> 

    <input type="submit" value="click"/> 
     </form> 

2 /創建,你把這些方法的豆

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」

相關問題