首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

关于structs使用动态方法调用,该如何处理

2013-12-15 
关于structs使用动态方法调用本帖最后由 Cissharp 于 2013-12-09 17:45:20 编辑以下这种使用方式总是提示

关于structs使用动态方法调用
本帖最后由 Cissharp 于 2013-12-09 17:45:20 编辑 以下这种使用方式总是提示'/orders/某个action' in namespace: ''. Form action defaulting to 'action' attribute's literal value.



一:jsp页面

function datetofindP()
{
//获取页面的第一个表单
targetForm = document.forms[0];
//动态修改表单的action属性
targetForm.action="/orders/PQueryOrdersAction!datetofindP";
targetForm.submit();
}
function datetofindS()
{
//获取页面的第一个表单
targetForm = document.forms[0];
//动态修改表单的action属性
targetForm.action="/orders/SQueryOrdersAction!datetofindS";
targetForm.submit();
}
function datetofindR()
{
//获取页面的第一个表单
targetForm = document.forms[0];
//动态修改表单的action属性
targetForm.action="/orders/RQueryOrdersAction!datetofindR";
targetForm.submit();
}
function datetofindD()
{
//获取页面的第一个表单
targetForm = document.forms[0];
//动态修改表单的action属性
targetForm.action="/orders/DQueryOrdersAction!datetofindD";
targetForm.submit();
}
function datetofindB()
{
//获取页面的第一个表单
targetForm = document.forms[0];
//动态修改表单的action属性
targetForm.action="/orders/BQueryOrdersAction!datetofindB";
targetForm.submit();
}
function datetofindT()
{
//获取页面的第一个表单
targetForm = document.forms[0];
//动态修改表单的action属性
targetForm.action="/orders/TQueryOrdersAction!datetofindT";
targetForm.submit();
}
function datetofindA()
{
//获取页面的第一个表单s
targetForm = document.forms[0];
//动态修改表单的action属性
targetForm.action="/orders/AQueryOrdersAction!datetofindA";
targetForm.submit();
}
  




</head>
<body>
<!-- 查询区域 -->
<h2>查询店铺内的订单</h2>

<s:form action="/orders/QueryOrdersActionA" validate="true">
<s:textfield name="startorderDatetoQuery" style="width:70px" onfocus="HS_setDate(this)" label="开始时间"></s:textfield>
<s:textfield name="endorderDatetoQuery" style="width:70px" onfocus="HS_setDate(this)" label="结束时间"></s:textfield>
<input type="submit" value="查询全部订单" onclick="datetofindA();" />
<input type="submit" value="查询未付款订单" onclick="datetofindP();"/>
<input type="submit" value="查询未发货订单" onclick="datetofindS();"/>
<input type="submit" value="查询未确认收货订单" onclick="datetofindR();"/>
<input type="submit" value="查询未退货订单" onclick="datetofindD();"/>
<input type="submit" value="查询退货成功订单" onclick="datetofindB();"/>
<input type="submit" value="查询交易成功订单" onclick="datetofindT();"/>
</s:form>


</body>
</html>


二:structs配置文件
<struts>

<!-- 动态设置 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
<package name="orders" namespace="/orders" extends="struts-default">
<!-- 查询订单Action -->
<!-- 查询未发货订单 -->
<!-- 查询退货成功订单 -->
<action name="BQueryOrdersAction" class="cn.edu.xmu.nextgentb.eclipse.action.QueryOrdersAction" method="datetofindB">
<result name="success">/WEB-INF/page/queryorderssuccess.jsp</result>
<result name="fail">/WEB-INF/page/queryordersfail.jsp</result>
</action>
<!-- 查询交易成功订单 -->
<action name="TQueryOrdersAction" class="cn.edu.xmu.nextgentb.eclipse.action.QueryOrdersAction" method="datetofindT">
<result name="success">/WEB-INF/page/queryorderssuccess.jsp</result>
<result name="fail">/WEB-INF/page/queryordersfail.jsp</result>
</action>
<!-- 查询所有订单 -->
<action name="AQueryOrdersAction" class="cn.edu.xmu.nextgentb.eclipse.action.QueryOrdersAction" method="datetofindA">
<result name="success">/WEB-INF/page/queryorderssuccess.jsp</result>
<result name="fail">/WEB-INF/page/queryordersfail.jsp</result>
</action>
<action name="SQueryOrdersAction" class="cn.edu.xmu.nextgentb.eclipse.action.QueryOrdersAction" method="datetofindS">
<result name="success">/WEB-INF/page/queryorderssuccess.jsp</result>
<result name="fail">/WEB-INF/page/queryordersfail.jsp</result>
</action>
<!-- 查询未确认收货订单 -->
<action name="RQueryOrdersAction" class="cn.edu.xmu.nextgentb.eclipse.action.QueryOrdersAction" method="datetofindR">
<result name="success">/WEB-INF/page/queryorderssuccess.jsp</result>
<result name="fail">/WEB-INF/page/queryordersfail.jsp</result>
</action>
<!-- 查询未退货订单 -->
<action name="DQueryOrdersAction" class="cn.edu.xmu.nextgentb.eclipse.action.QueryOrdersAction" method="datetofindD">
<result name="success">/WEB-INF/page/queryorderssuccess.jsp</result>
<result name="fail">/WEB-INF/page/queryordersfail.jsp</result>
</action>
<action name="QueryOrdersAction" class="cn.edu.xmu.nextgentb.eclipse.action.QueryOrdersAction" method="datetofind">


<result name="success">/WEB-INF/page/queryorderssuccess.jsp</result>
<result name="fail">/WEB-INF/page/queryordersfail.jsp</result>
</action>
</package>

三:action类

     //查询所有状态订单
    public String datetofindA()throws Exception{
    
QueryOrdersServiceImpl  qosi=new  QueryOrdersServiceImpl ();

//对指定订单时间进行查询
resultList = qosi.queryDateOrders(getStartorderDatetoQuery(),getEndorderDatetoQuery(),"A");
if(resultList==null)System.out.println("result List is null.");
if(resultList.isEmpty()) return "fail";
else return SUCCESS;
}
    
    //查询未处理订单
    public String datetofindP()throws Exception{
    
    QueryOrdersServiceImpl  qosi=new  QueryOrdersServiceImpl ();

    //对指定订单时间进行查询
    resultList = qosi.queryDateOrders(getStartorderDatetoQuery(),getEndorderDatetoQuery(),"P");
    if(resultList==null)System.out.println("result List is null.");
    if(resultList.isEmpty()) return "fail";
    else return SUCCESS;
    }
    
    //查询未发货订单
    public String datetofindS()throws Exception{
    
    QueryOrdersServiceImpl  qosi=new  QueryOrdersServiceImpl ();

    //对指定订单时间进行查询
    resultList = qosi.queryDateOrders(getStartorderDatetoQuery(),getEndorderDatetoQuery(),"S");
    if(resultList==null)System.out.println("result List is null.");
    if(resultList.isEmpty()) return "fail";
    else return SUCCESS;
    }
    
    //查询未确认收货订单
    public String datetofindR()throws Exception{
    
    QueryOrdersServiceImpl  qosi=new  QueryOrdersServiceImpl ();

    //对指定订单时间进行查询
    resultList = qosi.queryDateOrders(getStartorderDatetoQuery(),getEndorderDatetoQuery(),"R");
    if(resultList==null)System.out.println("result List is null.");
    if(resultList.isEmpty()) return "fail";
    else return SUCCESS;
    }
    
    //查询未退货订单
    public String datetofindD()throws Exception{
    
    QueryOrdersServiceImpl  qosi=new  QueryOrdersServiceImpl ();

    //对指定订单时间进行查询
    resultList = qosi.queryDateOrders(getStartorderDatetoQuery(),getEndorderDatetoQuery(),"D");
    if(resultList==null)System.out.println("result List is null.");
    if(resultList.isEmpty()) return "fail";
    else return SUCCESS;
    }
    
    //查询退货成功订单
    public String datetofindB()throws Exception{
    
    QueryOrdersServiceImpl  qosi=new  QueryOrdersServiceImpl ();

    //对指定订单时间进行查询
    resultList = qosi.queryDateOrders(getStartorderDatetoQuery(),getEndorderDatetoQuery(),"B");
    if(resultList==null)System.out.println("result List is null.");
    if(resultList.isEmpty()) return "fail";
    else return SUCCESS;
    }
    
    //查询交易成功订单
    public String datetofindT()throws Exception{
    
    QueryOrdersServiceImpl  qosi=new  QueryOrdersServiceImpl ();

    //对指定订单时间进行查询
    resultList = qosi.queryDateOrders(getStartorderDatetoQuery(),getEndorderDatetoQuery(),"T");
    if(resultList==null)System.out.println("result List is null.");
    if(resultList.isEmpty()) return "fail";
    else return SUCCESS;
    }
    


[解决办法]
<s:form action="/orders/QueryOrdersActionA" validate="true">

改成

<s:form action="QueryOrdersActionA" namespace="/orders" validate="true">


试试。

热点排行