public class abcAction extends DispatchAction {
private Calculator biz=new Calculator();
public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response){
ActionForward af=null;
AbcForm addForm=(AbcForm)form;
double resultData=biz.add(addForm.getNum1(), addForm.getNum2());
request.setAttribute("rt", resultData);
af=mapping.findForward("success");
return af;
}
}小弟初学struts 有问题请教
我做的是页面有可以写两个数  按加  两数相加
但是运行后说我空指针异常double resultData=biz.add(addForm.getNum1(), addForm.getNum2());、
<tr>
    <td>第一个数</td><td><input type="text" name="num1"></td>
    </tr>
    <tr>
    <td>第二个数</td><td><input type="text" name="num2"></td>
    </tr>
    <tr>
    <td><input type="submit" name="Submit" value="加"></td>
    </tr>我name定义成num1和num2  按道理能识别的啊 高手请教

解决方案 »

  1.   

    DispatchAction 你的配置参数呢?是method?
    需要在页面配置个隐藏域,把配置参数放进去,设值
    你直接这样,是找不到进你的那个方法的
      

  2.   

    <form action="abc.do" method="post">
     <action-mappings >
        <action
          attribute="AbcForm"
          input="/abc.jsp"
          name="AbcForm"
          path="/abc"
          scope="request"
          type="com.yourcompany.struts.action.abcAction">
          <forward name="fail" path="/fail.jsp" />
          <forward name="success" path="/success.jsp" />
        </action>  </action-mappings> 都配置了我已经设置了 页面是num1 num2  我那里的实体类也是num1 num2  书上说是会自动封装进去的 只要名字一样  而且我设置断电试过  是会跳进那个方法里的  就是每值
      

  3.   

    DispatchAction 好像不行,用 LookupDispatchAction 
      

  4.   

    <form action="abc.do" method="post">
    直接继承你为什么要继承DispatchAction 啊
    进方法了么,把form贴出来看看
      

  5.   

       继承DispatchAction就这样写
    页面
     <html:form action="/abc">
        <html:hidden property="method" value="add"/>
        数字1:<html:text property="num1"></html:text><br/>
        数字2:<html:textarea property="num2"></html:textarea><br/>
    br/>
        <html:submit>提交</html:submit>
    在配置里+个配置参数
     <action-mappings >
      <action
      attribute="AbcForm"
      input="/abc.jsp"
      name="AbcForm"
    parameter="method"
      path="/abc"
      scope="request"
      type="com.yourcompany.struts.action.abcAction">
      <forward name="fail" path="/fail.jsp" />
      <forward name="success" path="/success.jsp" />
      </action>  </action-mappings> action中这样写
    public ActionForward add(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response){
    ActionForward af=null;
    AbcForm addForm=(AbcForm)form;
    double resultData=biz.add(addForm.getNum1(), addForm.getNum2());
    request.setAttribute("rt", resultData);
    return mapping.findForward("success");}