Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Struts2赢得';将请求参数映射到整数操作字段_Java_Struts2 - Fatal编程技术网

Java Struts2赢得';将请求参数映射到整数操作字段

Java Struts2赢得';将请求参数映射到整数操作字段,java,struts2,Java,Struts2,好吧,我在这里发疯了。这应该是小事,但我一整天都在做这件事。以下是设置: 表单jsp: <s:form action="update-po-numbers" method="GET"> <h3>PO numbers</h3> <s:hidden name="programId"/> USD: <s:textfield name="poNumUSD.paramValue" />

好吧,我在这里发疯了。这应该是小事,但我一整天都在做这件事。以下是设置:

表单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>
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开发工具中看到,所有请求参数都按预期发送,并且不为null。在操作内部,poNumUSD.paramValue和poNumEUR.paramValue(都是字符串)设置得很好。但是,programId被设置为null。我可以使用以下字符串“手动”获取
程序ID

ServletActionContext.getRequest().getParam(paramName)


但是我想要自动类型转换。我错过了什么?至少,任何关于如何调试此程序以跟踪问题的帮助都将非常有用。

您没有在表单.jsp中设置
programmaid
的值

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




调试建议:为struts包启用调试日志记录。制作一个简单的表格,只保留与问题相关的信息(一个只包含编程查找信息的表格)?有什么问题吗?没有:(我非常生气,不得不在周末休息一下。我明天再试试。你在开发工具中看到的
programId
的价值是什么?填充动作bean就是params拦截器所做的,确保它在堆栈上。你的

<s:hidden name="programId" value="1" />
<s:hidden name="programId" value="%{programId}" />
<input type="hidden" id="programId" name="programId" value="<%=request.getParameter("programId")%>" />