假如我有一个bean——product,其中有String name,double price两个属性,使用s:textfield标签时,<s:textfield name="product.name"/>没有问题,但<s:textfield name="product.price"/>将会报错,无法赋值给bean:Method "setPrice" failed for object null。请问只能赋给String型的属性吗?其它类型的属性该如何处理?

解决方案 »

  1.   

    JSP:
    <s:form action="add" method="post">
        <table border="1" cellpadding="0" cellspacing="0" width="60%" bordercolor="#000000">
    <tr>
        <td>商品名称</td>
        <td>价格</td>
    </tr>
    <tr>
        <td><s:textfield name="product.productName"/></td>
        <td><s:textfield name="product.fixedPrice"/></td>
    </tr>
        </table>
    <s:submit value="添加"/>
    </s:form>
    ...
    Action:
    private Product product;
    ...//product getter,setter
    public String saveProduct() throws Exception{
    if(productServ.saveProduct(product) > 0){
        return SUCCESS;
    }else{
        return ERROR;
    }
    }
    ...String型的属性可以正确赋值啊,但是非String的就报错,s:textfield传过来的都是String吧?如何转型呢?
      

  2.   

    赋值给什么类型都是可以的..
    是不是没有写get 、set???
      

  3.   

    应该用double的封装类Double,不知道是不是这个问题