我已经为我的REST资源实现了乐观锁定,这些资源通过将GET中的版本号传回PUT调用,与数据库表进行一对一映射.如果在我执行GET和PUT之间数据库中的版本号发生了更改,则会发生乐观锁定异常.很简单的设计.
现在,如何对映射到多个数据库表的复合REST资源执行相同的操作?我不想传回多个版本字段(每个数据表对应一个复合资源).复合资源的简单示例是/ FooBar,其中/ Foo和/ Bar是非复合资源.
我基本上是在寻找Fowler的粗粒度锁定模式的REST实现示例:http://martinfowler.com/eaaCatalog/coarseGrainedLock.html
使用Servlet过滤器与Servlet上下文侦听器之间有什么区别?
你什么时候使用其中一个?
当用户将焦点移离字段时,我想将JSF inputText字段设置为大写字母.最好是使用f:ajax标签执行此操作并让blur事件触发对服务器的调用来执行大写,或者最好是在JavaScript中执行此操作吗?会是什么原因,是不是在JavaScript中做到这一点?使用ajax调用服务器端总是做这些事情是最好的吗?
使用Oracle JDBC客户端库建立Oracle连接时,默认情况下密码或安全握手是加密的吗?(想知道在使用Oracle JDBC客户端库建立连接时是否存在密码被嗅探的风险)
如果我想要EJB 3.0支持并希望运行Java 7,我是否需要Java EE或者我能坚持使用SE吗?
在过去(许多JDK版本之前),需要JDK的"J2EE"版本来运行EJB.这似乎不再是真的.请指教.
更新:我应该提到应用程序将在Oracle WebLogic 10.3.6中运行.
在Mac OS(开发)和Linux(生产服务器)之间切换时,Postgres的排序规则会发生变化,因为Postgres中的排序规则依赖于底层操作系统配置.
如何在Linux中实现与Mac OS中相同的Postgres排序规则行为?
我正在运行Postgres 9.2
Redshift不支持Arrays,但是我的源数据库在Redshift中有几个我需要的Array列.
尝试将其迁移到Redshift时,应如何处理此字段类型?
我有一个由ViewScoped Managed Bean支持的页面.该页面上有一个对话框(我正在使用primefaces),它由RequestScoped ManagedBean支持.我选择使对话框的托管bean请求作用域,以便在对话框启动时将其清除(基本上用例是用户打开对话框,填写一些数据,然后将数据添加到页面中由ViewScoped Managed Bean支持.
我正在集成两个bean的方式是通过对话框的RequestScoped bean上的ManagedProperty.即ViewScoped bean被注入RequestScoped bean.在保存对话框时,Dialog的RequestScoepd Bean上的actionListener方法更新ViewScoped bean上的属性,该属性包含对当前Bean实例的RequestScoped ManagedBean的引用.然后,请求范围bean调用ViewScoped托管bean上的actionListener.因此,ViewScoped托管bean中的actionListneer可以使用新注入的RequestScoped ManagedBean.
这是一个很好的方式来做我想做的事情还是有更好的方法?
示例代码:
@ManagedBean
@ViewScoped
public class PageBackingBean
{
List<DialogValue> dialogValues;
DialogValue dialogValue;
public void setDialogValue(DialogValue dialogValue)
{
this.dialogValue = dialogValue);
}
public DialogValue getDialogValue() { return dialogValue; }
public void handleDialogSave(ActionEvent event)
{
dialogValues.add(getDialogValue());
}
}
@ManagedBean
@RequestScoped
public class DialogValue
{
@ManagedProperty(#{pageBackingBean})
PageBackingBean pageBackingBean;
String val1;
String val2;
// getters/setters ommitted for brevity...
public void dialogSave(ActionEvent event)
{
pageBackingBean.setDialogValue(this);
pageBackingBean.handleDialogSave(event);
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个多页面的表单,也就是一个向导模式,其中Page 1对应于向导表单的第1步,第2页对应于第2步,等等.除了last之外的每个页面都有一个Next按钮,它带你到表格中的下一页.最后一页有一个提交按钮,提交向导中所有页面的所有数据.
我应该使用什么范围来维护每个表单上输入的数据的状态?例如,我应该使用View Scoped bean来保存所有页面上输入的所有数据吗?这将是有效的,因为我将导航到不同的页面(我认为这被认为是不同的"视图";如果它们是不同的视图,我相信当您导航到下一页时,View Scoped数据将会丢失魔法师)
在MyFaces和Mojarra 2.1中,存在一个缺陷,其中javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL设置为何时true,标记为必需并在模型中预先填充的任何字段,在消隐和提交时都会重新显示其原始非消隐值而不是空白.
场景是:
问题是该字段应显示用户提交的内容 - 即他们为字段提交的空白值 - 而是填充模型中的原始值.唯一的解决方法是设置javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL为false.设置为false提供所需的行为,当使用必填字段错误消息重新显示页面时,字段保持消隐.
Mojarra(http://java.net/jira/browse/JAVASERVERFACES-2375)和MyFaces(https://issues.apache.org/jira/browse/MYFACES-3525)记录了一个缺陷,但没有取得任何进展在6周内.
请注意,似乎Mojarra在6个月前报道了一个类似的问题,但尚未取得任何进展.
有没有人知道这方面的解决方法,我们可以javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL设置为true而不是false,但是没有遇到这个必需的字段可用性问题?