【问题标题】:Set param value in first position of array bean在数组bean的第一个位置设置参数值
【发布时间】:2016-07-06 16:58:14
【问题描述】:

我想知道是否可以在 bean 字符串数组中设置 url 参数接收的属性。

我有这个:

在 FormHandler 类中的 bean:

private String[] clientName;

JSP 文件:

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

这样,我的屏幕出现了这个错误:

**** 错误 Wed Jul 06 13:53:06 BRT 2016 Trying to set value of /clientCom/app/formHandlers/ClientFormHandler.clientName, this 发生 IllegalArgumentException:java.lang.IllegalArgumentException: 参数类型不匹配

这不起作用,所以我尝试了这个,但也没有成功......

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

我收到了这个错误

**** 错误 2016 年 7 月 6 日星期三 13:55:34 BRT 1467824134007 /atg/dynamo/servlet/dafpipeline/ProtocolSwitchServlet
atg.droplet.DropletException:无法设置多值元素 如果属性不是列表并且缺少索引,则为属性 属性方法

我可以在 JSP 文件中做这样的事情,而不改变 java 类吗?

Tks.

【问题讨论】:

    标签: java jsp javabeans


    【解决方案1】:

    我还没有找到一个数组的例子,但我建议你使用 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”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-14
      • 1970-01-01
      • 2021-11-15
      • 1970-01-01
      • 1970-01-01
      • 2011-07-15
      • 2022-11-29
      相关资源
      最近更新 更多