簡體   English   中英

在數組bean的第一個位置設置參數值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM