- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个填充有选项客户端的列表框,我需要将此列表框中的值存储到 sessionScope。
这是我的列表框
<xp:listBox id="listBox1"></xp:listBox>
这是我用来填充列表框的 jquery
$("[id$='listBox1']").append("<option value='"+ ret + "'>" + ret + "</option>")
这是我必须将列表框保存到 sessionScope 中的按钮
<xp:button value="Label" id="button1">
<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:sessionScope.pending = getComponent("listBox1").getValue()}]]></xp:this.action>
</xp:eventHandler></xp:button>
由于某种原因,列表框值未保存到我的 sessionScope 中。如果我在 DDE 中预先填充列表框,它可以工作,但这不是我想要的。
如何将客户端填充的值获取到我的 sessionScope 中。
粘贴到新 Xpage 的完整代码(您需要 jquery 或 bootstrap 主题)
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:this.data>
<xp:dominoDocument var="d" formName="Main"></xp:dominoDocument>
</xp:this.data>
<xp:button value="ADD TO LISTBOX" id="button2">
<xp:eventHandler event="onclick" submit="false">
<xp:this.script><![CDATA[var ret = "Testin"
$("[id$='listBox1']").append("<option value='"+ ret + "'>" + ret + "</option>")]]></xp:this.script>
</xp:eventHandler>
</xp:button>
<xp:listBox id="listBox1" value="#{sessionScope.pending}">
<xp:eventHandler event="onchange" submit="true" refreshMode="complete"></xp:eventHandler>
</xp:listBox>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:button value="save" id="button1">
<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:sessionScope.pending = getComponent("listBox1").getValue()}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:text escape="true" id="computedField1" value="#{sessionScope.pending}"></xp:text>
</xp:view>
最佳答案
这可以通过简单的 RPC 调用来完成。
在您的页面中添加 RPC,在本例中我将考虑 myRPC
作为服务名称。
为此 RPC 定义一个函数,该函数将值数组作为输入。该函数只是将此数组设置在 sessionScope 变量中。在此示例中,我将函数命名为 setScopeVariable
;
在客户端代码为列表框构建值之后,只需调用此 RPC 函数即可。这里 listBoxValues
是一个包含值列表的数组: myRPC.setScopeVariable(listBoxValues);
sessionScope 现已设置为正确的值。
通过这样做,您将不需要隐藏输入,也不需要刷新页面来设置 sessionScope。
关于javascript - 如何将添加到列表框客户端的值存储到 sessionScope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28583330/
这个问题在这里已经有了答案: How to choose the right bean scope? (2 个答案) 关闭 7 年前。 我已经阅读了范围类型(@SessionScoped、@Vi
这个问题在这里已经有了答案: How to choose the right bean scope? (2 个答案) 关闭 7 年前。 我已经阅读了范围类型(@SessionScoped、@Vi
我有一个填充有选项客户端的列表框,我需要将此列表框中的值存储到 sessionScope。 这是我的列表框 这是我用来填充列表框的 jquery $("[id$='listBox1']").appe
问题 我遇到了严重的问题(也许更多的是理解问题?),sessionScope 只是不想与我合作?事情是这样的: 我的网站有很多复选框。单击其中一个时,使用 ajax 调用将复选框信息存储到 sessi
我正在尝试在 xpages 应用程序中申请循环。 在计算字段中,我放入了以下代码,它显示了预期的结果。 var msg = ""; for(var j = 1; j <5;j++) { msg
我正在使用 SessionScoped bean 来存储我从使用 JPA 的 ClientService 中检索的 Client 对象。当我的网页加载时,我传递一个 GET Id 参数来检索正确的 C
显然,在 Web 应用上下文中很容易有多个并行请求访问同一个 @SessionScoped bean。我认为在这些请求中访问 @SessionScoped bean 时必须显式控制同步是否正确? 最佳
您好,我是 jsf 的新手,遇到了这样的问题。我有这个代码的起始页:
我的 Web 应用程序上有此配置。 2个 bean : 1° Bean - 检查登录; @ManagedBean(name="login") @SessionScoped public class L
CDI 新手问题。简单测试场景:JSF + CDI SessionScoped bean。 我需要一种优雅的方法来实例化一组已知的 session 作用域 CDI bean,而无需在 JSF 页面上提
在 XPage 上,我有一个导航器,它根据所选项目设置 sessionScope 变量。然后我在 SwitchFacet 中使用该值来显示几个不同 View 之一。这工作得很好,但我知道 switch
我有一个过程需要很长时间才能计算出来,因此在无状态EJB中将其标记为@Asynchronous。当过程完成时,我希望它从启动过程以存储结果的 session 中访问SessionScoped bean
JSF 2.0 项目中的 SessionScoped bean 有一个非常奇怪的问题。使用 Netbeans 6.9.1、Glassfish 3 服务器和 PrimeFaces 3 作为 JSF 组件
我不想在 selectOneMenue 中显示我的枚举类 [license] 的值。 我的许可证代码类: /**
我需要在用户试图离开页面、关闭选项卡或浏览器本身时弹出警告。我能够使用下面的 window.onbeforeunload 调用成功构建它。客户修改了要求,仅当网页上有未保存的编辑时才弹出。 我为页面上
我有名为 Navigation 的父类和名为 ExtendingNavigation 的子类。 Navigation 注释为 @Named("navigation") 和 @SessionScoped
我的目标是呈现一个具有创建、检索和更新功能的 jsf 页面。我决定为每个操作创建不同的 CDI bean 和不同的复合组件,然后将它们全部放在页面中。 到目前为止一切顺利,但我刚刚完成,我发现了一个非
我们的应用程序有非常奇怪的 react 。该应用程序有一个(单例)服务 - 让我们称之为 singletonService 。以及在 session 范围内运行的其他服务。 sessionServic
你好 我目前正在玩 Guice 和@SessionScoped。为了让它更有意义,我决定构建一个(非常简单的)身份验证过程。 下面,我将解释我所做的每一步。然后我会问你一些问题。 [1] 我创建了一个
任务是通过 JSTL 从 session 中检索参数。 session 参数名称是 "programId"。 我试过: please execute 然后我尝试: please ex
我是一名优秀的程序员,十分优秀!