应该将
<example:Update>update product set type=? where p_num=111
     <example:Parameter value="sedan" />
</example:Update>
改为
<example:Update sql="update product set type=? where p_num=111">
     <example:Parameter value="sedan" />
</example:Update>
即将sql语句做为一个属性,要不比较难将一个页面中的某段文字传到类中去

解决方案 »

  1.   

    那句sql在
          PreparedStatement statement=conn.prepareStatement(sql);              
          setValue("statement",statement);
    之前已经得到
          String sql=bodyContent.getString();
    只是如果在UpdateTag:doStartTag()上得不到而已,我感觉不是这个问题
      

  2.   

    <example:Update>update product set type=? where p_num=111
         <example:Parameter value="sedan" />
    </example:Update>这条语句难道你用getSql()能得到页面中update product set type=? where p_num=111这句话吗,据我所知,在标签以外的东西,不太好从类中获得
      

  3.   

    是bodyContent.getString();得到的这个问题自己解决了,就是调用顺序上的问题,UpdateTag的doAfterBody()方法是在Parameter的doEndTag()方法之后调用,当然得不到那个statement了,修改方法就是在Parameter中setvalue(value);在UpdateTag的doAfterBody()去取得它;有一点要注意的,要用TransactionTag得setValue()方法和getValue方法