在数组 bean 的第一个位置设置参数值
Set param value in first position of array bean
我想知道是否可以在 bean 字符串数组中设置由 url 参数接收的 属性。
我有这个:
你的 FormHandler 中的 bean class:
private String[] clientName;
JSP 文件:
<dsp:setvalue bean="ClientFormHandler.clientName" paramvalue="clientName" />
这样,我的屏幕出现了这个错误:
**** Error Wed Jul 06 13:53:06 BRT 2016 Trying to set value of /clientCom/app/formHandlers/ClientFormHandler.clientName, this
IllegalArgumentException occurred: java.lang.IllegalArgumentException:
argument type mismatch
这不起作用,所以我尝试了这个,但也没有成功...
<dsp:setvalue bean="ClientFormHandler.clientName[0]" paramvalue="clientName" />
我遇到了这个错误
**** Error Wed Jul 06 13:55:34 BRT 2016 1467824134007 /atg/dynamo/servlet/dafpipeline/ProtocolSwitchServlet
atg.droplet.DropletException: Cannot set elements of a multi-valued
prop erty if property is not a List and if it is missing an indexed
property method
我可以在 JSP 文件中执行类似的操作,而不更改 java class 吗?
感谢。
我还没有找到数组的示例,但我建议您使用 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)
array bean首位改为"NEW_NAME"
我想知道是否可以在 bean 字符串数组中设置由 url 参数接收的 属性。
我有这个:
你的 FormHandler 中的 bean class:
private String[] clientName;
JSP 文件:
<dsp:setvalue bean="ClientFormHandler.clientName" paramvalue="clientName" />
这样,我的屏幕出现了这个错误:
**** Error Wed Jul 06 13:53:06 BRT 2016 Trying to set value of /clientCom/app/formHandlers/ClientFormHandler.clientName, this IllegalArgumentException occurred: java.lang.IllegalArgumentException: argument type mismatch
这不起作用,所以我尝试了这个,但也没有成功...
<dsp:setvalue bean="ClientFormHandler.clientName[0]" paramvalue="clientName" />
我遇到了这个错误
**** Error Wed Jul 06 13:55:34 BRT 2016 1467824134007 /atg/dynamo/servlet/dafpipeline/ProtocolSwitchServlet
atg.droplet.DropletException: Cannot set elements of a multi-valued prop erty if property is not a List and if it is missing an indexed property method
我可以在 JSP 文件中执行类似的操作,而不更改 java class 吗?
感谢。
我还没有找到数组的示例,但我建议您使用 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)
array bean首位改为"NEW_NAME"