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

急:关于structs表单传值都action中的持久化类的问题
本帖最后由 Cissharp 于 2013-12-19 10:42:48 编辑
这是jsp部分代码:
<s:if test='ordersinfo.state=="未付款"'>
<s:form action="/orders/ModifyOrdersSumAction" method="post">
<s:textfield name="order.date" label="订单日期" value="%{ordersinfo.date}" readonly="true"/>
<s:textfield name="order.orderId" label="订单编号" value="%{ordersinfo.orderId}" readonly="true"/>
<s:textfield name="order.promocode" label="订单优惠码" value="%{ordersinfo.promocode}" readonly="true"/>
<s:textfield name="order.shipping" label="快递费用" value="%{ordersinfo.shipping}" readonly="true"/>
<s:textfield name="order.insurance" label="订单险" value="%{ordersinfo.insurance}" readonly="true"/>
<s:textfield name="order.storeId" label="店铺编号" value="%{ordersinfo.storeId}" readonly="true"/>
<s:textfield name="order.customerId" label="顾客编号" value="%{ordersinfo.customerId}" readonly="true"/>
<s:param name="order.isVisibleForC"><s:property value="%{ordersinfo.isVisibleForC}"/></s:param>
        <s:param name="order.isVisibleForS"><s:property value="%{ordersinfo.isVisibleForS}"/></s:param>
        <s:param name="order.consigneeId"><s:property value="%{ordersinfo.consigneeId}"/></s:param>
        <s:textfield name="order.sum" label="订单总金额" value="%{ordersinfo.sum}" />
        <s:textfield name="order.state" label="订单状态" value="%{ordersinfo.state}" readonly="true"/>
        <s:submit value="确认修改"/>
</s:form>
</s:if>
这是action中的部分代码:
public class ModifyOrdersAction extends ActionSupport{

Orders order = new Orders();

public Orders getOrders() {
return order;
}

public void setOrders(Orders order) {
this.order = order;
}

public String modifyordersum()throws Exception{

    System.out.println(order.getState());
    System.out.println(order.getSum());
    System.out.println(order.getInsurance());
    System.out.println(order.getIsVisibleForC());
    System.out.println(order.getIsVisibleForS());
    System.out.println(order.getState());
    System.out.println("modifysum");
//通过业务逻辑组件工厂取得组件
OrdersService os=(OrdersService)AppFactory.instance().getApp("OrdersService");

if(os==null)System.out.println("modify.os is null");
//调用业务逻辑方法处理用户请求,写入数据库
os.modifyOrders(getOrders());

return SUCCESS;
}
这是structs.xml中的部分配置:
<package name="orders" namespace="/orders" extends="struts-default">

<!-- 修改订单Action -->
<action name="ModifyOrdersSumAction" class="cn.edu.xmu.nextgentb.eclipse.action.ModifyOrdersAction" method="modifyordersum">
<result name="success">/WEB-INF/page/modifyorderssuccess.jsp</result>
</action>

出现的问题:
可以进入action中对应的方法,但是根本无法将order的属性传进来,也就是那几条输出语句都是0.0或者null