在我的页面上,我有来自数据库的数据表单。我想实现,作为默认行为,将所有更改写入db 我找到了这样的例子
<h:selectOneMenu value="#{bean.options}" onchange="submit()"
var="#{bean.options}" valueChangeListener="#{bean.changeListernMethod}">
<f:selectItem itemValue="1" itemLabel="option1" />
<f:selectItem itemValue="2" itemLabel="option2" />
<f:selectItem itemValue="3" itemLabel="option3" />
</h:selectOneMenu>
但它不会调用侦听器方法并重新加载所有页面。我无法在每个inputText编辑或菜单选择更改时重新加载页面。你知道如何实现这样的行为吗?在没有页面重新加载的情况下更新bean中的对象。
答案 0 :(得分:2)
AVAsset *asset = [AVAsset assetWithURL:videoTempURL];
AVPlayerItem *item = [[AVPlayerItem alloc] initWithAsset:asset];
AVPlayer *player = [[AVPlayer alloc] initWithPlayerItem:item];
player.actionAtItemEnd = AVPlayerActionAtItemEndNone;
AVPlayerLayer *layer = [AVPlayerLayer playerLayerWithPlayer:player];
// layer.frame = self.view.frame;
[self.view.layer addSublayer:layer];
layer.backgroundColor = [UIColor clearColor].CGColor;
//layer.backgroundColor = [UIColor greenColor].CGColor;
[layer setVideoGravity:AVLayerVideoGravityResizeAspectFill];
[player play];
这是你实现部分提交的方式,或者用你的话说:在没有页面重新加载的情况下更新bean中的对象。我输入的行将触发ajax并在选择值时更新(仅)表单,并且与之前选择的值不同。
欲了解更多信息:
https://docs.oracle.com/javaee/6/javaserverfaces/2.1/docs/vdldocs/facelets/f/ajax.html