Mục tiêu của tôi là lấy chiều rộng màn hình, chiều cao, v.v., thành một phiên bean trong JSF. Theo các ví dụ tôi đã tìm thấy, cách để làm điều này là thêm một param vào một commandButton với một giá trị là javascript. Giá trị sau đó được chuyển sang biến bean assignTo. Thuộc tính noEscape được cho là tạo ra nó để giá trị được truyền thay vì tên biến.Chuyển các giá trị JavaScript cho Bean bằng a4j: param
Điều này hầu như hoạt động. Điều xảy ra là tên biến chữ, ví dụ: "screen.height" gió lên trên đậu thay vì một số, ví dụ: 600. Tôi đã thử thay đổi nó để nó gọi một hàm kịch bản nhưng điều đó không giúp được gì. (Lưu ý, tôi đặt các params bên trong một commandButton bởi vì các ví dụ cho thấy nó theo cách đó và nút này là một nơi thuận tiện và nó là cần thiết cho các ứng dụng anyway).
Tôi có đoạn code sau
<h:commandButton value="Log In" action="#{loginBean.login}" styleClass="buttons">
<a4j:param name="w" value="getWidth()" assignTo="#{browser.screenWidth}" noEscape="true" />
<a4j:param name="h" value="screen.height" assignTo="#{browser.screenHeight}" noEscape="true" />
<a4j:param name="a" value="navigator.userAgent" assignTo="#{browser.userAgent}" noEscape="true" />
</h:commandButton>
nơi
<script>
function getWidth() {
return screen.width;
}
</script>
Một lần nữa, vấn đề cụ thể là tôi nhận được tên biến vào đậu, không phải là giá trị biến. Bất kì sự trợ giúp nào đều được đánh giá cao.
Cảm ơn. Điều này khắc phục sự cố của tôi. Không hoàn toàn chắc chắn làm thế nào tôi bỏ lỡ phần h vs a4j. – wjr
@ user2418375 Rất vui khi được giúp đỡ, đừng quên đánh dấu là đã chấp nhận! –