簡體   English   中英

Struts2不會將請求參數映射到Integer操作字段

[英]Struts2 won't map request param to Integer action field

好的,我在這里失去了理智。 這應該是微不足道的東西,但我整天都堅持這一點。 這是設置:

形成jsp:

<s:form action="update-po-numbers" method="GET">
        <h3>PO numbers</h3>

        <s:hidden name="programId"/>

        USD: <s:textfield name="poNumUSD.paramValue" />
        EUR: <s:textfield name="poNumEUR.paramValue" />

        <s:submit value="Update PO numbers" />
</s:form>

struts.xml :(使用默認的struts攔截器堆棧)

<action name="update-po-numbers" class="UpdatePONumbersAction">
        <result name="success">success.jsp</result>
</action>

UpdatePONumbersAction.java:

public class UpdatePONumbersAction extends BaseAction {

        private Integer                 programId;
        private InvoiceParameterVO      poNumUSD;
        private InvoiceParameterVO      poNumEUR;

        @Override
        public String execute () throws Exception {

                InvoiceManager.updatePoNums(programId, poNumUSD, poNumEUR);

                return Action.SUCCESS;
        }

        public Integer getProgramId () {
                return programId;
        }

        public void setProgramId ( Integer programId ) {
                this.programId = programId;
        }

        public InvoiceParameterVO getPoNumUSD () {
                return poNumUSD;
        }

        public void setPoNumUSD ( InvoiceParameterVO poNumUSD ) {
                this.poNumUSD = poNumUSD;
        }

        public InvoiceParameterVO getPoNumEUR () {
                return poNumEUR;
        }

        public void setPoNumEUR ( InvoiceParameterVO poNumEUR ) {
                this.poNumEUR = poNumEUR;
        }
}

表單先前已填充值。 我可以從Chrome開發工具中看到,所有請求參數都按預期發送,並且不為空。 在動作中,poNumUSD.paramValue和poNumEUR.paramValue(都是字符串)設置得很好。 但是,programId被設置為null。 我可以通過programId方式獲得programId “手動”作為String:

ServletActionContext.getRequest().getParam(paramName)

但我想要自動類型轉換。 我錯過了什么? 至少,如何調試這個以幫助追蹤問題的任何幫助都會很棒。

您沒有設置的值programIdform.jsp

<s:hidden name="programId" value="1" />

要么

<s:hidden name="programId" value="%{programId}" />

要么

<input type="hidden" id="programId" name="programId" value="<%=request.getParameter("programId")%>" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM