Java struts 2验证未正确重新填充下拉列表
我已经在这里查看了以前的文章,我似乎找不到我的问题,它是如何设置的。我的控件在初始加载时填充,但在验证失败时不填充。如果我转到索引页,它可以加载,如果我转到strutsxml文件中定义的操作,它就可以加载。唯一的问题是在验证重新加载之后 从jsp文件中删除相关部分Java struts 2验证未正确重新填充下拉列表,java,struts2,Java,Struts2,我已经在这里查看了以前的文章,我似乎找不到我的问题,它是如何设置的。我的控件在初始加载时填充,但在验证失败时不填充。如果我转到索引页,它可以加载,如果我转到strutsxml文件中定义的操作,它就可以加载。唯一的问题是在验证重新加载之后 从jsp文件中删除相关部分 <s:form action="CreateReq" method="post" validation="true" theme="simple"> <s:select name="measurementLi
<s:form action="CreateReq" method="post" validation="true" theme="simple">
<s:select name="measurementList"
list="measurementList"
listKey="Name" listValue="Id"
class="quantitydropdown">
</s:select>
</s:form>
PrepareCreateRequisitionAction类
public ArrayList<Measurement> getMeasurementList() {
if (measurementList==null || measurementList.isEmpty()){
this.createMeasurementList();
}
return measurementList;
}
private void createMeasurementList() {
measurementList = new ArrayList<Measurement>();
measurementList.add(new Measurement("Bag", "Bag"));
measurementList.add(new Measurement("Box", "Box"));
measurementList.add(new Measurement("Cubic decimeter", "Cubic decimeter"));
}
public ArrayList getMeasurementList(){
if(measurementList==null | | measurementList.isEmpty()){
this.createMeasurementList();
}
返回测量列表;
}
私有void createMeasurementList(){
measurementList=新的ArrayList();
添加(新测量(“袋”、“袋”));
添加(新测量(“框”、“框”));
添加(新的测量(“立方分米”、“立方分米”);
}
index.jsp
<head>
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=CreateReq.action">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>HTML 5 with Struts 2</title>
</head>
HTML5与Struts2
struts.xml
<action name="CreateReq" method="execute" class="com.te.sss.action.CreateRequisitionAction">
<result name="success">/success.jsp</result>
<result name="input">/createRequisition.jsp</result>
</action>
/success.jsp
/createrequision.jsp
input
。在这里,您还编写了success
result的规则。如果真正的代码是github上的代码,那么您的代码只有在验证失败的情况下才能工作。。。仔细检查您的设置请注意,您不需要从您的操作中实例化另一个操作;为此使用Pojo。操作
是否实现了Prepareable
?诸如此类的事情很重要。另外,不要指定execute
方法;这是默认值。是的,它确实实现了Preparable。我指定了execute,因为我将在将来更改它,因为它将有多个操作。请创建一个失败最少的示例,并将其放在github上。顺便说一句,这很难理解;实例化一个操作只是为了获得一些服务级别功能是非常不寻常的,从prepareXxx
方法返回值也是如此。很抱歉,我应该先这样做。我真的没想到我的帖子会这么久,直到我快写完了。代码看起来不错,尽管设计并不像Dave建议的那样好。1. LoadWaitingRequisitions()
此方法的作用是什么?2.启用struts2 devMode以查看更多日志。我在真正的应用程序中确实有该筛选器。我做了改变只是为了确保它不会影响行为。另外,git上的应用程序不是真正的应用程序,Dave要求提供一个最低失败率的应用程序,所以我拿出了不需要的应用程序。
<action name="CreateReq" method="execute" class="com.te.sss.action.CreateRequisitionAction">
<result name="success">/success.jsp</result>
<result name="input">/createRequisition.jsp</result>
</action>