我在这样的JSF中有一个简单的表单
<h:form>
<p:inputText id="name1" value="#{bean.name1}" maxlength="100" required="true"/>
<p:inputText id="contact1" value="#{bean.contact1}" required="true"/>
<p:commandButton
value="Save"
action="#{bean.saveForm()}"
validateClient="true" />
</h:form>
我尝试删除元素检查器(F12 Chrome)中的一个输入文本,它实际上绕过了该字段的“必需”验证。
在我的web.xml中,我已按照In JSF, What is the best way to prevent Form tampering?
中的建议添加了以下代码<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
我读到JSF已经使用上述方法自动将viewState存储在服务器中,但事实证明,我仍然可以绕过它。我错过了什么吗?
任何帮助将不胜感激。谢谢!