java - jsp中的表单字段不会更改java变量

标签 java jsp tomcat backend

当我提交表单并调用java函数时(按下按钮时),我无法更改jsp页面中的数据信息。

这是我的 .jsp 表单字段中使用的一段代码:

...
<h:form>
<h:panelGrid columns="3">
<h:outputLabel for="contactName" value="#{msj.contactName}"/>
<h:inputText id="contactName" value="#{CustodiaBean.name}" required="true">
<f:validator validatorId = "TextValidator" />
</h:inputText>
<h:message for="contactName" styleClass="errorMessage" style="color:red"/>

<h:outputLabel for="contactLastName" value="#{msj.contactLastName}"/>
<h:inputText id="contactLastName" value="#{CustodiaBean.last_name}" required="true" >
<f:validator validatorId = "TextValidator" />
</h:inputText>
<h:message for="contactLastName" styleClass="errorMessage" style="color:red"/>
</h:panelGrid>

<div id="button">
<h:commandLink styleClass="hoveringLink3doubleGreen" action="#{CustodiaBean.updateAccount}">
<h:outputText id="save_button" value="#{msj.save_changes}"/>
</h:commandLink>
<h:commandLink styleClass="hoveringLink3double" action="myAccountCustodia">
<h:outputText id="cancel_button" value="#{msj.cancel}"/>
</h:commandLink>
</div>
</h:form>
...

这与其他页面(如登录和注册用户)中使用的代码相同。 表单字段获取“CustodiaBean”中的当前值,但我尝试更改表单中的值,当我按下按钮检查值(调用“CustodiaBean”中的函数)时,我总是得到以前的值(新表单值在我的类“CustodiaBean”中未更改)。

我正在使用 tomcat 服务器和 eclipse。

是否需要在按下按钮时强制屏蔽字段并保存更改??

我不知道为什么会这样。谁能帮助我或给我一些建议??

提前致谢

最佳答案

h:inputText 等是否也有属性名?试试看生成了什么html。您的数据可能没有正确提交。任何 HTML 表单直接提交 feilds,这些 feilds 没有被每个字段的 name 属性禁用。如果存在 id 而不是 name,则不会正确提交。尝试在浏览器级别或通过一些 firefox 插件(如篡改数据)进行调试。

希望对你有帮助

关于java - jsp中的表单字段不会更改java变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27626025/

相关文章:

java - Spring MVC JSP 参数

带有静态初始化器的 Java servlet 和类

java - 使用基类与子类的静态类型创建对象?

Java HttpURLConnection 和池

java - Android SQLite 中的原始查询 - 插入或忽略

java - spring mvc以jsp形式返回子类对象

java - JSP - 错误java.lang.String没有属性

apache - 带有 Apache 2.4 代理的 Tomcat 9 : 408 after correct login

java - 如何在运行时重新加载不属于 jar 的 application.properties

java - SWT 浏览器不工作?