小编iva*_*ans的帖子

JSF commandButton with immediate ="true"

我有一种情况,其中有一个selectOneMenu,其值绑定到支持bean.

我需要一个不更新模型值的按钮(这就是为什么它有immediate ="true"属性).

该按钮的action方法更改selectOneMenu绑定的值,但是当重新显示页面时,将显示原始值(已提交的值)而不是action方法中设置的值.

任何想法为什么会发生这种情况?

如果我没有足够好地解释这个问题,请告诉我.


编辑:这里要求的是有问题的源代码:

页码:

<h:selectOneMenu id="selectedPerson" 
                 binding="#{bindings.selectPersonComponent}" 
                 value="#{bean.selectedPerson}">
   <s:selectItems var="op" value="#{bean.allPersons}" 
                  label="#{op.osoba.ime} #{op.osoba.prezime}" 
                  noSelectionLabel="#{messages.selectAPerson}">
   </s:selectItems>
   <f:converter converterId="unmanagedEntityConverter" />
</h:selectOneMenu>
...
<a4j:commandButton action="#{bean.createNew}" value="#{messages.createNew}"
     immediate="true" reRender="panelImovine">
</a4j:commandButton>
Run Code Online (Sandbox Code Playgroud)

java代码:

private Person selectedPerson;

public String createNew() {
    log.debug("New created...");
    selectedPerson = null;
    bindings.getSelectPersonComponent().setSubmittedValue(null); //SOLUTION
    return "";
}
Run Code Online (Sandbox Code Playgroud)

解决方案是在内衬标记解决方案 :)

jsf

6
推荐指数
1
解决办法
2万
查看次数

Scala lift框架,提交多个值的ajax表单?

我刚刚开始使用lift,我现在正在尝试将普通表单更改为ajax表单,但该方法processEntryAdd永远不会被调用.

def addUser(xhtml : Group) : NodeSeq = {

    var firstName = ""
    var lastName = ""

    def processEntryAdd() {
        Log.info("processEntryAdd: " + firstName + ", " + lastName)
    }

    SHtml.ajaxForm(
        bind("entry", xhtml,
             "firstName" -> SHtml.text(firstName, 
                 (x) => {
                     Log.info("Setting firstName to " + x); 
                     firstName = x
                 }),
             "lastName" -> SHtml.text(lastName, 
                 (x) => {
                     Log.info("Setting lastName to " + x); 
                     lastName = x
                 }),
             "submit" -> SHtml.submit("Add user", processEntryAdd),
        ))
}
Run Code Online (Sandbox Code Playgroud)

任何想法如何实现我想要做的,或为什么上面的代码不起作用.按下按钮时会提交两个表单字段的值,firstName并且lastName设置了两个局部变量,但未调用与SHtml.submit关联的函数.

谢谢!

ajax scala lift ajax-forms

6
推荐指数
2
解决办法
3915
查看次数

带片段着色器的GLSL仅渲染黑色GL_POINTS

我试图在我的旧OpenGL程序中添加一些着色器,这些程序可以绘制很多GL_POINTS和一些GL_LINES.

我创建了这两个着色器:

顶点着色器:

void main()
{ 
    vec4 v = vec4(gl_Vertex);
    v.z = v.z + sin(v.x*v.x + v.y*v.y)/10.0;
    gl_Position = gl_ModelViewProjectionMatrix * v;
}
Run Code Online (Sandbox Code Playgroud)

片段着色器:

#version 120 

void main()
{
    vec4 myOutputColor = gl_Color;
    gl_FragColor = myOutputColor;
    //gl_FragColor.r = 0.5;
}
Run Code Online (Sandbox Code Playgroud)

这两个着色器编译和链接没有问题.并且顶点着色器工作得很好,我可以看到GL_POINTS在顶点着色器中使用该sin移位.但问题是,如果背景颜色不是黑色,我只能看到我的GL_POINTS和GL_LINES,因为所有的点和线都呈现为黑色.似乎忽略了渲染代码中使用glColor3f设置的所有颜色.如果我取消注释片段着色器中的注释行,我可以将所有的行和点都设置为红色,但是gl_Color不应该对应于每个点使用glColor3f设置的颜色吗?

我的OpenGL代码中是否还有其他可能导致此行为的内容?

opengl shader glsl

6
推荐指数
1
解决办法
6128
查看次数

标签 统计

ajax ×1

ajax-forms ×1

glsl ×1

jsf ×1

lift ×1

opengl ×1

scala ×1

shader ×1