在数组bean的第一个位置设置param值

时间:2016-07-06 16:58:14

标签: java jsp javabeans

我想知道是否可以在bean String Array中设置url参数接收的属性。

我有这个:

您的FormHandler类中的bean:

private String[] clientName;

JSP文件:

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

通过这种方式,我在屏幕上出现了这个错误:

  

****错误Wed Jul 06 13:53:06 BRT 2016试图设置/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并且缺少索引,则属性   属性方法

我可以在JSP文件中执行类似的操作,而无需更改java类吗?

韩国社交协会

1 个答案:

答案 0 :(得分: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 /创建一个你放置这些方法的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”