我正在使用 Hibernate 3.0 和 Struts。我使用 @GenerateValue
来生成 id。
当我保存客户详细信息时,我有一个客户屏幕,我想使用
新插入的 customerId
因为仅根据该 ID,我将保存第二页详细信息
为此我正在使用类似
someDAO.save(customer);
customerId = customer.getCustomerId();
我在保存并使用 Struts 2 redirectAction
后获取了客户对象值,我将 customerId
转发到第二页,它工作正常,但我在控制台上收到警告
Caught OgnlException while setting property 'applicationId' on type 'org.apache.struts2.dispatcher.ServletActionRedirectResult'.
ognl.NoSuchPropertyException: org.apache.struts2.dispatcher.ServletActionRedirectResult.applicationId
at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:132)
at com.opensymphony.xwork2.util.OgnlValueStack$ObjectAccessor.setProperty(OgnlValueStack.java:68)
at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:1656)
at ognl.ASTProperty.setValueBody(ASTProperty.java:101)
at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177)
at ognl.SimpleNode.setValue(SimpleNode.java:246)
最佳答案
你可以忽略这一点的最佳方法,
但是,redirectAction 使用 ActionMapperFactory 提供的 ActionMapper 将浏览器重定向到调用指定操作的 URL,并且(可选)<命名空间。 OGNL 尝试使用源页面上指定的值设置 map html 元素,并将这些值推送到 valuestack 中。有时OGNL尝试将值与在源页面的操作类中指定的 setter 进行映射,但无法设置值并导致警告。
您可以尝试显式分配参数来抑制警告:
<result name="showReportResult" type="redirectAction">
<param name="applicationId">${applicationId}</param>
</result>
关于java - 在 Hibernate 中获取插入的 id 是更好的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15287221/