日期:2014-05-18  浏览次数:20798 次

关于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">/