How can I get popup window using commandButton in Trinidad?
How can I get popup window using commandButton
in Trinidad?
My problem is that by clicking on Add
button from dialogdemo.jspx
, not any popup window or dialog box is opened.
This is dialogdemo.jspx
file:
<jsp:root
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:tr="http://myfaces.apache.org/trinidad"
version="1.2">
<jsp:directive.page contentType="text/html;charset=utf-8" />
<f:view>
<tr:document title="Dialog Demo">
<tr:form>
<!--
The field for the value; we point partialTriggers at the
button to ensure it gets redrawn when we return
-->
<tr:inputText label="Pick a number:" partialTriggers="buttonId"
value="#{launchDialog.input}" />
<!--
The button for launching the dialog: we've also configured
the width and height of that window
-->
<tr:commandButton text="Add" action="dialog:chooseInteger"
id="buttonId" windowWidth="300" windowHeight="200"
partialSubmit="true" useWindow="true"
returnListener="#{launchDialog.returned}" />
</tr:form>
</tr:document>
</f:view>
</jsp:root>
Here is the associated managed bean LaunchDialogBean.java
:
package jsfpkg;
import org.apache.myfaces.trinidad.component.UIXInput;
import org.apache.myfaces.trinidad.event.ReturnEvent;
public class LaunchDialogBean {
private UIXInput _input;
public UIXInput getInput() {
return _input;
}
public void setInput(UIXInput input) {
_input = input;
}
public void returned(ReturnEvent event) {
if (event.getReturnValue() != null) {
getInput().setSubmittedValue(null);
getInput().setValue(event.getReturnValue());
}
}
}
Here is the popup file Popup.jspx
:
<jsp:root
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:trh="http://myfaces.apache.org/trinidad/html"
xmlns:tr="http://myfaces.apache.org/trinidad"
version="2.0">
<jsp:directive.page contentType="text/html;charset=utf-8" />
<f:view>
<tr:document title="Add dialog">
<tr:form>
<!-- Two input fields -->
<tr:panelForm>
<tr:inputText label="Number 1:" value="#{chooseInteger.value1}"
required="true" />
<tr:inputText label="Number 2:" value="#{chooseInteger.value2}"
required="true" />
</tr:panelForm>
<!-- Two buttons -->
<tr:panelGroup layout="horizontal">
<tr:commandButton text="Submit" action="#{chooseInteger.select}" />
<tr:commandButton text="Cancel" immediate="true"
action="#{chooseInteger.cancel}" />
</tr:panelGroup>
</tr:form>
</tr:document>
</f:view>
</jsp:root>
For that I have written the bean ChooseIntegerBean.java
package jsfpkg;
import org.apache.myfaces.trinidad.context.RequestContext;
public class ChooseIntegerBean {
private Integer _value1;
private Integer _value2;
public Integer getValue1() {
return _value1;
}
public void setValue1(Integer value1) {
_value1 = value1;
}
public Integer getValue2() {
return _value2;
}
public void setValue2(Integer value2) {
_value2 = value2;
}
public String cancel() {
RequestContext.getCurrentInstance().returnFromDialog(null, null);
return null;
}
public String select() {
Integer value = new Integer(getValue1().intValue() + getValue2().intValue());
RequestContext.getCurrentInstance().returnFromDialog(value, null);
return null;
}
}
Here is my faces-config.xml
:
<managed-bean>
<managed-bean-name>chooseInteger</managed-bean-name>
<managed-bean-class>jsfpkg.ChooseIntegerBean</managed-bean-class>
<managed-bea开发者_开发百科n-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>launchDialog</managed-bean-name>
<managed-bean-class>jsfpkg.LaunchDialogBean</managed-bean-class>
<managed-bean-scope>
request
</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/dialogdemo.jspx</from-view-id>
<navigation-case>
<from-outcome>dialog:chooseInteger</from-outcome>
<to-view-id>/dialogbox.jspx</to-view-id>
</navigation-case>
</navigation-rule>
I think action of your commandButton is wrong:
<tr:commandButton text="Submit" action="#{chooseIntegerBean.select}" windowWidth="300" windowHeight="200"
partialSubmit="true" useWindow="true" />
and in your ChooseIntegerBean:
public String select()
{
//other things
return "dialog:chooseInteger";
}
and in web.xml:
<context-param><param-name>org.apache.myfaces.trinidad.ENABLE_LIGHTWEIGHT_DIALOGS</param-name><param-value>true</param-value></context-param>
try removing /dialogdemo.jspx from you config file first. second time just remove the / in above tag in front of the file name.
精彩评论