我在jsp页面上有一个自动填充的下拉列表。提交表单后,重新加载页面时,搜索结果将显示在下表中,并且所有下拉列表和其他字段条目都按提交前的样子重新填充。
除了这个值<option value="A"><spring:message code="code.label.ANE" /></option>
。它不像其他人。它不是从数据库动态创建的,因为它基本上只是将多个结果汇总为一个结果,因此不是有效的数据库代码。其他人将正确地被重新选择,但不是这个。
我假设<option value="">${Select}</option>
仅因为它的第一个值而起作用,因此默认为选中状态。不能实际测试它,因为该值不支持任何搜索。
不,我的值不能成为新的默认值,因为它不可能是唯一的自定义报告选项。
<div class="col-md-4">
<label>
<spring:message code="common.label.lifeCycle" />
</label>
<form:select path="hrmsLifeCycleCode" id="hrmsLifeCycleCode" cssClass="form-control">
<spring:message code="field.select" var="Select" />
<option value="">${Select}</option>
<option value="A"><spring:message code="code.label.ANE" /></option>
<form:options items="${hrmsLifeCycle}" itemValue="codeValue" itemLabel="longDesc" />
</form:select>
</div>
答案 0 :(得分:0)
在jsp中添加以下内容
$(document).ready(function() {
<c:if test="${querySelect == 'A'}">
$("#hrmsLifeCycleCode").val('A');
</c:if>
});
在控制器中
model.addAttribute("querySelect", hrmsLifeCycle.getHrmsLifeCycleCode());
由于控制器现在正在传递选定的值,因此当选定的值是这种未自动选择的情况时,它将在页面加载后选择它。
这不是最好的解决方案,但是有效。
答案 1 :(得分:0)
有一个更好的解决方案,不需要更改jsp。虽然最初的修复程序很少,但此修复程序更好,但涉及的程度稍多。
由于该控制器有两个部分,即正常页面和执行表单/搜索的一个部分,因此两个部分都需要更改。
所以产生该属性的原始语句是
model.addAttribute("hrmsLifeCycle", GeneralCodeManager.getInstance().getList(GeneralCodeManager.LIFECYCLE_PROC_DESC_CTBL_HRMS_ONLY));
改为
List<GeneralCode> something = new ArrayList<GeneralCode>();
GeneralCode newCode = new GeneralCode(-1, STRING_NEW_REPORT_ID, "-1", "Report Name");
something.add(newCode);
List<GeneralCode> extraList = GeneralCodeManager.getInstance().getList(Report_ID);
extraList.add(something);
model.addAttribute("hrmsLifeCycle", extraList);
因此,以上内容为报告创建了一个新的列表元素,并将其添加。
这可以通过我一周或两周前学到的东西进一步改进,那就是在requestMapping之外的控制器中定义modelAttributes。
@ModelAttribute("hrmsLifeCycle")
List<GeneralCode> something = new ArrayList<GeneralCode>();
GeneralCode newCode = new GeneralCode(-1, STRING_NEW_REPORT_ID, "-1", "Report Name");
something.add(newCode);
List<GeneralCode> extraList = GeneralCodeManager.getInstance().getList(Report_ID);
extraList.add(something);
return extraList;
}
和访问将使用
"${extraList}"
要真正改善它,更好的名字会有所帮助,大声笑。