我面临一个很难调试的问题。我有一个 JSP 页面,上面有一些提交给 Struts2 动作的表单元素。我还有一个 XML 表单验证文件来对提交的字段执行一些验证。该文件具有命名约定“actionName-validation.xml”
这很好用,但是当我在表单之外添加一个下拉框时,验证现在失败了。相反,它重定向到一个空白页面,并且我的操作类中的断点没有被命中。
有没有办法打开某种调试或日志记录以进行验证?为什么在表单之外添加标签会导致这种情况发生?
这是JSP页面上的代码:
<s:select id="dataSource" name="selectedDataSource" theme="simple" listValue="top"
headerKey="" headerValue="Choose Data" list="dataSources" size="1" />
<div id="forms">
<s:form method="post" action="MyAction" theme="simple">
<p>
<label class="input" for="name"
<span style="color:red;">*</span>
<span>Name</span><br>
<s:textfield theme="simple" name="name" maxlength="11" size="11" />
<br>
<s:fielderror theme="plain"><s:param value="'name'" /</s:fielderror></label>
</p>
<s:submit value="Create New" theme="simple" cssStyle="display: block; clear: left;"/>
</s:form>
</div>
如果我删除<s:select>
标签,它会起作用。
任何帮助将不胜感激。
EDIT2:我发现了问题。我需要一个用于在表单提交到的操作中填充选择下拉列表的 get 方法。
我有一个用于最初为页面调用的操作,但是当验证失败并且它从表单操作类重新加载该页面时,它会尝试重新填充选择下拉列表并需要一个 getter。我为没有早点找到它而感到愚蠢。如果这些类型的问题有某种类型的日志记录或消息传递,那就太好了。
谢谢。