我想在同一页面中编辑项目列表.应使用单独的表单编辑每个项目.我正在创建啊:ui中的表单:重复.仅在提交最后一个表单时,用户输入才会应用于托管bean.对于所有其他表单,用户输入不会应用于模型.
@ManagedBean
public class Controller {
Logger logger = Logger.getLogger("TestWeb");
private List<Customer> customerList;
public List<Customer> getCustomerList() {
if (customerList == null) {
customerList = new ArrayList<Customer>();
customerList.add(new Customer("Daffy Duck", "daffy@example.com"));
customerList.add(new Customer("Bugs Bunny", "bugs@example.com"));
customerList.add(new Customer("Samity Sam", "sam@example.com"));
}
return customerList;
}
public String updateCustomer(Customer c) {
logger.info("Updating: " + c.getName());
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
在视图中,我有
<ui:repeat var="c" value="#{controller.customerList}">
<h:form>
<h3>Edit Customer</h3>
Name: <h:inputText value="#{c.name}"/><br/>
E-mail: <h:inputText value="#{c.email}"/><br/>
<h:commandButton value="Update"
action="#{controller.updateCustomer(c)}"/>
</h:form>
</ui:repeat>
Run Code Online (Sandbox Code Playgroud)
我没有任何解决方案搜索了几个小时 这样做的正确方法是什么?我可以通过使用单个表单并在其中使用ui:repeat来破解它.但是有很多问题,我宁愿不采取这种方式.谢谢.
平台:iOS 6.1.Xcode 4.6.
我正在使用YouTube Javascript API和UIWebView.我可以手动点击视频缩略图,开始播放就好了.但是,自动播放不起作用.我正在为许多人建议的Web视图设置mediaPlaybackRequiresUserAction = NO.没运气.
这是代码:
@interface VideoPlayerController : UIViewController <UIWebViewDelegate>
@property(strong, nonatomic) IBOutlet UIWebView* webView;
@end
- (void) viewDidLoad
{
[super viewDidLoad];
self.webView.delegate = self;
NSString *template = [NSString stringWithContentsOfFile:
[[NSBundle mainBundle]
pathForResource:@"YouTubeTemplate" ofType:@"txt"]];
NSString *htmlStr = [NSString stringWithFormat: template,
200, 200,
@"3G4exdlsRkY"];
self.webView.mediaPlaybackRequiresUserAction = NO;
[self.webView loadHTMLString:htmlStr baseURL:nil];
}
- (void) webViewDidFinishLoad:(UIWebView *)wv {
self.webView.mediaPlaybackRequiresUserAction = NO;
}
Run Code Online (Sandbox Code Playgroud)
YouTubeTemplate.txt文件是:
<html>
<head>
<script src="https://www.youtube.com/player_api"></script>
<style>
body, div {
margin: 0px;
padding: 0px;
}
</style>
</head>
<body> …Run Code Online (Sandbox Code Playgroud) 在0.13.0-夜间,以下代码不会编译:
fn main() {
let a = (10.5f64).sqrt();
}
Run Code Online (Sandbox Code Playgroud)
我收到错误:
error: type `f64` does not implement any method in scope named `sqrt`
Run Code Online (Sandbox Code Playgroud)
错误:由于先前的错误而中止
试试看:http://is.gd/3raOIn
我究竟做错了什么?谢谢!
这是一个简单的 struct
pub struct Point {
x: uint,
y: uint
}
impl Point {
pub fn new() -> Point {
Point{x: 0u, y: 0u}
}
}
fn main() {
let p = box Point::new();
}
Run Code Online (Sandbox Code Playgroud)
我对构造函数如何工作的理解如下.该new()函数Point在其本地堆栈中创建一个实例并返回它.来自此实例的数据被浅层复制到由其创建的堆内存中box.然后将指向堆内存的指针分配给变量p.
我的理解是否正确?两个独立的内存区域是否已初始化以创建一个实例?与C++相比,这似乎是一种初始化实例的低效方法,我们可以从构造函数直接写入实例的内存.