当前位置: 首页 > 面试题库 >

如何在不刷新的情况下更新页面中显示的值

陈浩
2023-03-14
问题内容

我在JSF页面中有这3个字段

<h:inputText id="val1" value="#{managedBean.val1}"/> 
<h:inputText id="val2" value="#{managedBean.val2}"/> 
<h:outputText value="#{managedBean.result}"/>

我也有一个具有以下属性的后备豆:

@ManagedBean
@RequestScoped
public class NewOfferSupportController {

   private String val1;
   private String val2;
   private String result;

//Get set methods...
}

我希望在将某些值插入字段val1和val2中而不刷新页面时,outputText元素自动更改其值。结果变量应以这种方式计算(它正在计算百分比):(val1 * val2)/ 100

您能帮我解决我的一些疑问吗?:

我知道为此,我需要javascript或AJAX之类的东西。您认为最好的方法是什么?

我很想知道我如何使用AJAX进行操作,您能给我一些提示吗?

由于我需要这些字段的类型为String,应如何实现我的验证?

我能避免在字段中键入不是数字的字符吗(如果所按下的键不是数字,则根本不会出现在输入字段中)?


问题答案:

如果这是简单的计算,不需要服务器调用,则应使用客户端javascript解决方案

但是,当您喜欢使用Ajax进行操作时,就可以开始使用..

您可以使用<f:ajax>render属性使用AJAX使事情发生。

<h:form> 
      <h:inputText value="#{managedBean.val1}" > 
         <f:ajax event="keyup" render="result" listener="#{managedBean.someThingToDoListener}"/> 
      </h:inputText> 
      <h:inputText value="#{managedBean.val2}" > 
        <f:ajax event="keyup" render="result" listener="#{managedBean.someThingToDoListener}"/> 
      </h:inputText>

      <h:outputText id="result" value="#{managedBean.result}"/>
</h:form>
@ManagedBean(name = "managedBean") 
public class Bean { 
   private String val1; // getter and setter 
   private String val2; // getter and setter 
   private String res; // getter and setter 
   ...

   public void someThingToDoListener(AjaxBehaviorEvent event) { 
       //res = some processing
    }

}

也可以看看

  • JSF2:JSF中的Ajax –使用f:ajax标记


 类似资料:
  • 问题内容: 如何在不刷新页面的情况下更改URL? 我已经用CodeIginer建立了一个网站,我想在我的页面之一中实现AJAX和JQuery。问题是; 当我加载内容时,URL不会改变。 假设我有URL 和另一个URL: 单击按钮时如何将第一个URL更改为第二个URL? 问题答案: 在HTML5中,您可以更改URL: 检查http://spoiledmilk.com/blog/html5-chang

  • 问题内容: 我的页面结构是: 如何在不刷新整个页面的情况下更新/刷新组件? 一旦用户成功登录,我想在标题中隐藏“登录”链接。标题在所有组件/路由中都是通用的。 问题答案: 您可以使用 来在整个应用程序的不同组件之间进行通信。您可以定义一个数据共享服务,其中包含 您可以订阅和发出更改的服务。 定义数据共享服务 在您的 提供商条目中添加。 接下来,将导入到您和您在其中执行登录操作的组件中。在订阅主题更

  • 我有一个带有视频播放器窗口的react js应用程序。我有一个管理面板,可以更改显示的视频的url。 我想当管理员改变显示的视频时,显示的视频在用户的另一边,改变而不刷新页面。 我怎么能那样做?

  • 我有一个用户名列表,用户名列表根据用户输入的数量而增加。问题是,当用户输入用户名时,列表会被输入填充,只有当我的页面重新加载时,我的页面才会更新。这是我迄今为止尝试过的代码。 我无法在外页重新加载的情况下更新数据。请建议我如何更新ui:在外页重新加载的情况下重复数据。提前谢谢。

  • 问题内容: 我已经使用提交按钮在ajax中发送了数据,而没有刷新任何页面。但是页面刷新了。 请检查我的代码,让我知道问题所在。 ajax.php 问题答案: js已经阻止了表单提交 问题中的代码 已经 阻止了此行提交表单: 这意味着:问题中的JavaScript代码根本没有运行。 该表格尚不存在 这里的问题是当此行代码运行时: 那个元素还没有加入dom 。因此,提交处理程序不附加任何内容-表单提交

  • 我是阿贾克斯大学的新生 AJAX jsp Servlet 我如何将servlet值diaplay到jsp。请帮帮我?或者请提供一些好的教程链接。