我想知道是否可以在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类吗?
韩国社交协会
答案 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”