2017-12-21 4 views
-1

호출되지 액션 세터를 삭제 : 내가 만드는 액션, 디스플레이 작업이나 편집 작업을 실행 할 때마다, 전화 세터의 모든 스트럿스트럿 나는 스트럿츠의 액션 클래스과 같이이

public class OrderDetailAction extends BaseActionSupport { 

    private String ID = new OID().toString(); 
    private Collection<OrderDetail> orderdetailList; 
    private String orderStatus; 
    private String shippingAddressId; 
    private java.util.Date createdDate; 
    private java.util.Date updatedDate; 
    private String billingAddressId; 

    public void setOrderStatus(String orderStatus) { 
     this.orderStatus = orderStatus; 
    } 

    public String getOrderStatus() { 
     return orderStatus; 
    } 

    public void setShippingAddressId(String shippingAddressId) { 
     this.shippingAddressId = shippingAddressId; 
    } 

    public String getShippingAddressId() { 
     return shippingAddressId; 
    } 
    public void setCreatedDate(java.util.Date createdDate) { 
     this.createdDate = createdDate; 
    } 

    public java.util.Date getCreatedDate() { 
     return createdDate; 
    } 
    public void setUpdatedDate(java.util.Date updatedDate) { 
     this.updatedDate = updatedDate; 
    } 

    public java.util.Date getUpdatedDate() { 
     return updatedDate; 
    } 
    public void setBillingAddressId(String billingAddressId) { 
     this.billingAddressId = billingAddressId; 
    } 

    public String getBillingAddressId() { 
     return billingAddressId; 
    } 
    public String getID() { 
     return ID; 
    } 

    public void setID(String ID) { 
     this.ID = ID; 
    } 

    public Collection<OrderDetail> getOrderDetailList() { 
     return orderdetailList; 
    } 

    public void setOrderDetailList(Collection<OrderDetail> orderdetailList) { 
     this.orderdetailList = orderdetailList; 
    } 

    // some more logic 
} 

. 그러나, 작업을 삭제할 때 struts는 모든 설정자를 호출하지 못합니다. setID().

이런 이유가 있을까요?

입력 양식처럼 JSP 중 하나 보이는 것 사이에는 차이가 없습니다
<struts> 
     // some other stuff here 

     <action name="getOrderDetails" class="presentation.OrderDetailAction" method="getOrderDetails"> 
      <result name="success">OrderDetailList.jsp</result> 
     </action> 

     <action name="displayOrderDetail" class="presentation.OrderDetailAction" method='displayOrderDetail'> 
      <result name="success">OrderDetail.jsp</result> 
     </action> 

     <action name="displayCreateOrderDetail" class="presentation.OrderDetailAction" method='displayCreate'> 
      <result name="success">CreateOrderDetail.jsp</result> 
     </action> 

     <action name="createOrderDetail" class="presentation.OrderDetailAction" method='create'> 
      <result name="success" type="chain">getOrderDetails</result> 
      <result name="input">CreateOrderDetail.jsp</result> 
      <result name="error">CreateOrderDetail.jsp</result> 
     </action> 

     <action name="displayEditOrderDetail" class="presentation.OrderDetailAction" method='displayUpdate'> 
      <result name="success">EditOrderDetail.jsp</result> 
     </action> 

     <action name="editOrderDetail" class="presentation.OrderDetailAction" method='update'> 
      <result name="success" type="chain">getOrderDetails</result> 
      <result name="input">EditOrderDetail.jsp</result> 
      <result name="error">EditOrderDetail.jsp</result> 
     </action> 

     <action name="deleteOrderDetail" class="presentation.OrderDetailAction" method='delete'> 
      <result name="success" type="chain">getOrderDetails</result> 
     </action> 
// some more stuff here 
</sturts> 

: 다른 모든 CRUD 작업을 위해

<input name="action:displayEditOrderDetail" class="btn btn-success" value="Edit" type="submit" id="displayOrderDetail_displayEditOrderDetail"/> 
    <input name="action:deleteOrderDetail" class="btn btn-danger" value="Delete" type="submit" id="displayOrderDetail_deleteOrderDetail"/> 
    <input name="action:getOrderDetails" class="btn btn-default" value="Cancel" type="submit" id="displayOrderDetail_getOrderDetails"/> 

가 성공적으로 스트럿 여기

참조 내 struts.xml입니다 모든 세터를 호출합니다. Delete의 경우를 제외하고는 setID() 만 호출합니다. 삭제와 관련하여 뭔가 다른 것이 있습니까?

미리 감사드립니다.

+0

다른 매개 변수가 struts 조치에 게시되었는지 확인하십시오. Firefox 개발자 도구 (또는 다른 유사한 도구)로 응답을 확인 했습니까? –

답변

0

개체를 삭제 한 후에는 redirectAction 결과를 반환해야합니다.

<result name="success" type="redirectAction">getOrderDetails</result> 
+0

불행히도 여전히 오류가 있습니다. 'setID()'를 제외하고 setter는 호출되지 않습니다. 삭제를 위해 ID 설정기를 호출하는 표준 스트럿츠가 있습니까? – aBrokenSniper

+0

삭제 작업을 호출 할 때 다른 매개 변수는 필요하지 않습니다. 평소와 같이 작업을 처리하고 리디렉션을 다음 작업으로 되돌려 야합니다. 여러 개의 매개 변수가 전송 된 상태라면 요청 유형을 재고해야합니다. 이런 종류의 행동에 GET이 더 적절할 수 있습니다. –