深圳网页定做wordpress优化方法
web/
2025/9/26 11:10:05/
文章来源:
深圳网页定做,wordpress优化方法,电商 做图 网站有哪些,惠州专业网站建设价格jsf标签p:ajax今天#xff0c;我们将看到一些使用JSF的Ajax简单样本。 如果要查看有关JSF / Web应用程序的其他文章#xff0c;请单击以下链接#xff1a; 重定向后的JSF持久化对象和消息 #xff0c; 使用JAAS和JSF进行用户登录验证 #xff0c; JSF#xff1a;… jsf标签p:ajax 今天我们将看到一些使用JSF的Ajax简单样本。 如果要查看有关JSF / Web应用程序的其他文章请单击以下链接 重定向后的JSF持久化对象和消息 使用JAAS和JSF进行用户登录验证 JSFConverter and Bean AutoComplete JSF – Hello WorldAuto Complete 在WebApp上处理异常 用户身份验证过滤器/ Servlet 创建WebServer 。 在本文的结尾您将找到下载示例源代码的链接。 在本文 使用JAAS和JSF进行用户登录验证 中我展示了如何安装JBoss 6以防您从今天开始运行该项目。 您将需要在Eclipse中安装JBoss工具插件。 看一下下面的页面及其代码 !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
html xmlnshttp://www.w3.org/1999/xhtml xmlns:uihttp://java.sun.com/jsf/facelets xmlns:hhttp://java.sun.com/jsf/htmlxmlns:fhttp://java.sun.com/jsf/core
h:head
/h:head
h:bodyh:formYour Name: h:inputText idinputname label${msgs.prompt} value#{user.name}/br /h:commandButton action#{user.sayHello} valueDisplay my name here, now!/br //h:form
/h:body
/html 我们如何使用Ajax在同一屏幕上显示键入的名称 小菜一碟只需添加“ fajax”组件。 检查代码更新和结果 !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
html xmlnshttp://www.w3.org/1999/xhtml xmlns:uihttp://java.sun.com/jsf/facelets xmlns:hhttp://java.sun.com/jsf/htmlxmlns:fhttp://java.sun.com/jsf/core
h:head
/h:head
h:bodyh:formYour Name: h:inputText idinputname label${msgs.prompt} value#{user.name}/br /h:commandButton action#{user.sayHello} valueDisplay my name here, now!f:ajax rendermyName executeinputname //h:commandButtonbr /br /h:outputText idmyName value#{user.name} //h:form
/h:body
/html 很容易吧 我们只需要将“ execute”参数传递给ManagedBean的值即可 使用“ render”参数我们将告诉JSF“刷新”哪个组件。 还要注意键入的名称将出现在控制台中。 使用此代码我们可以“刷新”所有类型的组件。 让我们看看另一个示例 如果用户键入的名称少于4个字符我们将显示一条错误消息。 检查我们的新消息和新代码 !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
html xmlnshttp://www.w3.org/1999/xhtml xmlns:uihttp://java.sun.com/jsf/facelets xmlns:hhttp://java.sun.com/jsf/htmlxmlns:fhttp://java.sun.com/jsf/core
h:head
/h:head
h:bodyh:formh:messages idmyMessage globalOnlytrue showDetailtrue/Your Name: h:inputText idinputname label${msgs.prompt} value#{user.name}/br /h:commandButton action#{user.sayHello} valueDisplay my name here, now!f:ajax rendermyName myMessage executeinputname //h:commandButtonbr /br /h:outputText idmyName value#{user.name} //h:form
/h:body
/htmlpackage demo;import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;/*** Created by JBoss Tools*/
ManagedBean(name user)
RequestScoped
public class User {private String name;public String sayHello() {if (isNameIncorrect()) {FacesContext context FacesContext.getCurrentInstance();context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, Too small, Can you write it a little bigger?));}System.out.println(name);return null;}private boolean isNameIncorrect() {return .equals(name.trim()) || name.length() 3;}public String getName() {return name;}public void setName(String name) {this.name name;}
} 注意我们有组件“ hmessages”其ID在“ fajax”组件中使用。 当您使用“ hmessage for “ YYY ”组件时此代码也适用。 如果我们现在使用组合框怎么办 让我们显示一个组合框当我们使用少于6个字符的名称时将包含4个项目如果键入的名称超过6个字符则将显示一个包含4个以上项目的列表。 package demo;import java.util.ArrayList;
import java.util.List;import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.component.UISelectItems;
import javax.faces.component.html.HtmlSelectOneMenu;
import javax.faces.context.FacesContext;
import javax.faces.event.AjaxBehaviorEvent;/*** Created by JBoss Tools*/
ManagedBean(name user)
RequestScoped
public class User {private String name;private ListString cars;private String selectedCar;private HtmlSelectOneMenu htmlSelectCars;private static final String SELECT_A_CAR Select One Car;public User() {cars new ArrayListString();}public String sayHello() {if (isNameInCorrect()) {FacesContext context FacesContext.getCurrentInstance();context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, Too small, Can you write it a little bigger?));}System.out.println(name);return null;}private boolean isNameInCorrect() {return name null || .equals(name.trim()) || name.length() 3;}public String getName() {return name;}public void setName(String name) {this.name name;}public void editMyCarsList(AjaxBehaviorEvent event) {if (htmlSelectCars null) {htmlSelectCars new HtmlSelectOneMenu();}htmlSelectCars.getChildren().clear();UISelectItems items new UISelectItems();items.setValue(getCars());htmlSelectCars.getChildren().add(items);}public ListString getCars() {cars.clear();cars.add(SELECT_A_CAR);if (!isNameInCorrect() name.length() 6) {cars.add(Ferrari);cars.add(Porch);cars.add(Beetle);cars.add(Opala);cars.add(Passat);cars.add(Vectra);cars.add(Chevet);cars.add(Corvet);} else {cars.add(Ferrari);cars.add(Porch);cars.add(Beetle);cars.add(Opala);}return cars;}public void setCars(ListString cars) {this.cars cars;}public String getSelectedCar() {return selectedCar;}public void setSelectedCar(String selectedCar) {this.selectedCar selectedCar;}public HtmlSelectOneMenu getHtmlSelectCars() {editMyCarsList(null);return htmlSelectCars;}public void setHtmlSelectCars(HtmlSelectOneMenu htmlSelectCars) {this.htmlSelectCars htmlSelectCars;}
} 现在看一下我们的页面 !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
html xmlnshttp://www.w3.org/1999/xhtml xmlns:uihttp://java.sun.com/jsf/facelets xmlns:hhttp://java.sun.com/jsf/htmlxmlns:fhttp://java.sun.com/jsf/core
h:head
/h:head
h:bodyh:formh:messages idmyMessage globalOnlytrue showDetailtrue /Your Name: h:inputText idinputname label${msgs.prompt} value#{user.name} /br /h:commandButton action#{user.sayHello} valueDisplay my name here, now!f:ajax rendermyName myCars myMessage executeinputname listener#{user.editMyCarsList} //h:commandButtonbr /br /h:outputText idmyName value#{user.name} /br /br /Choose your car: h:selectOneMenu idmyCars binding#{user.htmlSelectCars} value#{user.selectedCar} /br /br //h:form
/h:body
/html 请注意我们的组合框项目大小会根据键入的名称进行更新。 在本文的结尾我将详细讨论为什么我对HtmlSelectOneMenu使用binding属性而不是返回List String。 作为最后一个示例让我们创建一个组合框该组合框将根据Car组合框中的选定值出现和消失。 看看我们的ManagedBean package demo;import java.util.ArrayList;
import java.util.List;import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.component.UISelectItems;
import javax.faces.component.html.HtmlSelectOneMenu;
import javax.faces.context.FacesContext;
import javax.faces.event.AjaxBehaviorEvent;/*** Created by JBoss Tools*/
ManagedBean(name user)
RequestScoped
public class User {private String name;private ListString cars;private ListString colors;private String selectedCar;private String selectedColor;private HtmlSelectOneMenu htmlSelectCars;private static final String SELECT_A_CAR Select One Car;public User() {cars new ArrayListString();colors new ArrayListString();colors.add(Red);colors.add(Blue);colors.add(Orange);colors.add(Pink -- O.o);}public String sayHello() {if (isNameInCorrect()) {FacesContext context FacesContext.getCurrentInstance();context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, Too small, Can you write it a little bigger?));}System.out.println(name);return null;}private boolean isNameInCorrect() {return name null || .equals(name.trim()) || name.length() 3;}public String getName() {return name;}public void setName(String name) {this.name name;}public void editMyCarsList(AjaxBehaviorEvent event) {if (htmlSelectCars null) {htmlSelectCars new HtmlSelectOneMenu();}htmlSelectCars.getChildren().clear();UISelectItems items new UISelectItems();items.setValue(getCars());htmlSelectCars.getChildren().add(items);}public ListString getCars() {cars.clear();cars.add(SELECT_A_CAR);if (!isNameInCorrect() name.length() 6) {cars.add(Ferrari);cars.add(Porch);cars.add(Beetle);cars.add(Opala);cars.add(Passat);cars.add(Vectra);cars.add(Chevet);cars.add(Corvet);} else {cars.add(Ferrari);cars.add(Porch);cars.add(Beetle);cars.add(Opala);}return cars;}public void setCars(ListString cars) {this.cars cars;}public String getSelectedCar() {return selectedCar;}public void setSelectedCar(String selectedCar) {this.selectedCar selectedCar;}public ListString getColors() {return colors;}public void setColors(ListString colors) {this.colors colors;}public boolean isColorsAlloweToDisplay() {if (isNameInCorrect()) {return false;}if (selectedCar null || selectedCar.trim().equals() || selectedCar.equals(SELECT_A_CAR)) {return false;}return true;}public String getSelectedColor() {return selectedColor;}public void setSelectedColor(String selectedColor) {this.selectedColor selectedColor;}public HtmlSelectOneMenu getHtmlSelectCars() {editMyCarsList(null);return htmlSelectCars;}public void setHtmlSelectCars(HtmlSelectOneMenu htmlSelectCars) {this.htmlSelectCars htmlSelectCars;}
} 我们的ManagedBean进行了轻微的更新我们只是添加了一个List该List的方法返回了将填充组合框的颜色列表。 我们还添加了一个方法该方法将返回布尔值-如果允许显示组合框则返回true。 检查我们的新页面 !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
html xmlnshttp://www.w3.org/1999/xhtml xmlns:uihttp://java.sun.com/jsf/facelets xmlns:hhttp://java.sun.com/jsf/htmlxmlns:fhttp://java.sun.com/jsf/core
h:head
/h:head
h:bodyh:formh:messages idmyMessage globalOnlytrue showDetailtrue /Your Name: h:inputText idinputname label${msgs.prompt} value#{user.name} /br /h:commandButton action#{user.sayHello} valueDisplay my name here, now!f:ajax rendermyName myCars myMessage myColors executeinputname listener#{user.editMyCarsList} //h:commandButtonbr /br /h:outputText idmyName value#{user.name} /br /br /Choose your car:h:selectOneMenu idmyCars binding#{user.htmlSelectCars} value#{user.selectedCar}f:ajax rendermyColors executeinputname myCars//h:selectOneMenubr /br /h:panelGroup idmyColorsh:selectOneMenu value#{user.selectedColor} rendered#{user.colorsAlloweToDisplay}f:selectItems value#{user.colors} //h:selectOneMenu/h:panelGroup/h:form/h:body
/html 我将讨论帖子中使用的代码 HtmlSelectOneMenu –我使用组件而不是列表因为JSF在用户屏幕DOM树中呈现组件的效果不是很好。 如果您的组合框有4行并且使用ajax将更多行添加到列表中那么JSF / Ajax将无法识别新添加的行 您将只能使用旧值。 您可以尝试将代码与List String一起使用而不是使用HtmlSelectOneMenu来查看结果 我花了大约3到4个小时来通过互联网上的大量搜索来了解这一点。 “ hpanelGroup”组件内的HtmlSelectOneMenu –之所以这样做是因为每次您要呈现未呈现的组件时都需要更新其容器。 如果我们的selectOne位于汽车selectOne的同一窗体内则需要呈现所有窗体。 单击此处从此帖子下载代码 。 希望这篇文章对您有所帮助。 如果您有任何疑问/疑问/建议请将其发布。 参考 uaiHebert博客上来自JCG合作伙伴 Hebert Coelho的JSF Simple Ajax Samples 。 翻译自: https://www.javacodegeeks.com/2012/07/jsf-simple-ajax-samples.htmljsf标签p:ajax
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/82163.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!