soufan

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  22 随笔 :: 0 文章 :: 0 评论 :: 0 Trackbacks

使用backing bean来添加UIComponents 到页面中?

下面是一个例子:

jsp1.jsp:

<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<f:view>
<head>
<title>jsp1</title>
  <link rel="stylesheet" type="text/css" href="./style.css" title="Style"/>
</head>
<body bgcolor="#ffffff">  TESTING...
  <h:form id="form1">
    <h:panelGrid id="panelgridtest" binding="#{jsp1Bean.component}"/>
  </h:form>
</body>
</f:view>
</html>

 

Jsp1Bean.java:

package test;
 
import javax.faces.application.Application;
import javax.faces.component.UIComponent;
import javax.faces.component.UIPanel;
import javax.faces.component.UIViewRoot;
import javax.faces.component.html.HtmlInputText;
import javax.faces.component.html.HtmlOutputText;
import javax.faces.context.FacesContext;
 
public class Jsp1Bean
{
    UIComponent component = null;
    FacesContext facesContext = FacesContext.getCurrentInstance();
    UIViewRoot uIViewRoot = facesContext.getViewRoot();
    Application application = facesContext.getApplication();
 
    public Jsp1Bean()
    {
    }
 
    public UIComponent getComponent()
    {
        if (component == null)
        {
            component = new UIPanel();
        }
        return component;
    }
 
    public void setComponent(UIComponent component)
    {
        this.component = component;
    }
 
     //initialization block
    {
        try
        {
            //outputText1
            HtmlOutputText outputText1 = (HtmlOutputText
              facesContext.getApplication().createComponent(HtmlOutputText.COMPONENT_TYPE);
            outputText1.setValue("---the outputText1 value---");
            //inputText1
            HtmlInputText inputText1 = (HtmlInputText)
                facesContext.getApplication().createComponent(HtmlInputText.COMPONENT_TYPE);
            inputText1.setValue("---the inputText1 value---");
 
            //add outputText1 and inputText1 to component ("UIPanel")
            this.getComponent().getChildren().add(outputText1);
            this.getComponent().getChildren().add(inputText1);
        }
        catch (java.lang.Throwable t)
        {
            System.out.println("java.lang.Throwable exception encountered...t.getMessage()=" + t.getMessage());
            t.printStackTrace();
        }
    }
 
    public String doAction()
    {
        return "submit";
    }
}

 

faces-config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
                              "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
<faces-config>
  <navigation-rule>
    <from-view-id>/jsp1</from-view-id>
    <navigation-case>
      <from-action>submit</from-action>
      <to-view-id>/jsp1</to-view-id>
      <redirect/>
    </navigation-case>
  </navigation-rule>
  <managed-bean>
    <managed-bean-name>jsp1Bean</managed-bean-name>
    <managed-bean-class>test.Jsp1Bean</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
  </managed-bean>
</faces-config>
posted on 2006-12-19 16:14 soufan 阅读(222) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: