You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by we...@apache.org on 2009/12/16 17:21:04 UTC
svn commit: r891288 - in /myfaces/extensions/scripting/trunk:
core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/
core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/
core/myfaces2-extensions/src/main/java/org/apache/myfaces/s...
Author: werpu
Date: Wed Dec 16 16:21:03 2009
New Revision: 891288
URL: http://svn.apache.org/viewvc?rev=891288&view=rev
Log:
https://issues.apache.org/jira/browse/EXTSCRIPT-30
annotations on the groovy side should work now are not fully tested yet
but first examples work
Added:
myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/GenericAnnotationScanner.java (contents, props changed)
- copied, changed from r891262, myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/JavaAnnotationScanner.java
myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService2.groovy
- copied, changed from r891262, myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService.groovy
Removed:
myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/JavaAnnotationScanner.java
Modified:
myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy
myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/BeanImplementationListener.java
myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/faces-config.xml
myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/Blog.groovy
myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogEntry.groovy
myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService.groovy
myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer1.java
myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.java
myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/blog.xhtml
myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/javablog.xhtml
Modified: myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy?rev=891288&r1=891287&r2=891288&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy Wed Dec 16 16:21:03 2009
@@ -28,6 +28,10 @@
import org.apache.myfaces.scripting.refresh.FileChangedDaemon
import org.apache.myfaces.scripting.core.util.WeavingContext
import org.apache.myfaces.groovyloader.core.GroovyGlobalReloadingStrategy
+import org.apache.myfaces.scripting.api.AnnotationScanner
+import org.apache.myfaces.scripting.core.util.Cast
+import org.apache.myfaces.scripting.core.util.ReflectUtil
+import org.apache.myfaces.scripting.core.util.ClassUtils
/**
* Weaver which does dynamic class reloading
@@ -48,6 +52,8 @@
static ThreadLocal _groovyClassLoaderHolder = new ThreadLocal();
DynamicClassIdentifier identifier = new DynamicClassIdentifier()
+ AnnotationScanner _scanner = null;
+
public GroovyWeaver() {
@@ -61,6 +67,20 @@
//version we work around that with setters
_reloadingStrategy = new GroovyGlobalReloadingStrategy()
_reloadingStrategy.setWeaver(this)
+
+ //init classpath removed we can resolve that over the
+ //url classloader at the time myfaces is initialized
+ try {
+ Class scanner = ClassUtils.getContextClassLoader().loadClass("org.apache.myfaces.scripting.jsf2.annotation.GenericAnnotationScanner");
+ Class [] params = new Class[1];
+ params[0] = ScriptingWeaver.class ;
+ this._scanner = scanner.getConstructor(params).newInstance(this);
+ //this._scanner = (AnnotationScanner) ReflectUtil.instantiate(scanner, params);
+
+ } catch (ClassNotFoundException e) {
+ //we do nothing here
+ }
+
}
/**
@@ -108,6 +128,9 @@
refreshReloadingMetaData(sourceRoot, file, currentClassFile, retVal, ScriptingConst.ENGINE_TYPE_GROOVY);
}
+ if (_scanner != null && retVal != null) {
+ _scanner.scanClass(retVal);
+ }
return retVal
@@ -138,12 +161,19 @@
}
public void fullRecompile() {
- //TODO probably not needed because the groovy classloader takes care of everything itself
- //the tainting does the rest but we have to check it for the annotations
+ // We do not have to do a full recompile here
+ //the groovy classloader takes care of the issue
+ //instead we just set the recompile recommended to false
WeavingContext.getRefreshContext().setRecompileRecommended(ScriptingConst.ENGINE_TYPE_GROOVY, Boolean.FALSE);
}
-
+
+ public void fullAnnotationScan() {
+ if (_scanner == null) {
+ return;
+ }
+ _scanner.scanPaths();
+ }
}
Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java?rev=891288&r1=891287&r2=891288&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java Wed Dec 16 16:21:03 2009
@@ -76,7 +76,7 @@
//init classpath removed we can resolve that over the
//url classloader at the time myfaces is initialized
try {
- Class scanner = ClassUtils.getContextClassLoader().loadClass("org.apache.myfaces.scripting.jsf2.annotation.JavaAnnotationScanner");
+ Class scanner = ClassUtils.getContextClassLoader().loadClass("org.apache.myfaces.scripting.jsf2.annotation.GenericAnnotationScanner");
this._scanner = (AnnotationScanner) ReflectUtil.instantiate(scanner, new Cast(ScriptingWeaver.class, this));
} catch (ClassNotFoundException e) {
Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/BeanImplementationListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/BeanImplementationListener.java?rev=891288&r1=891287&r2=891288&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/BeanImplementationListener.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/BeanImplementationListener.java Wed Dec 16 16:21:03 2009
@@ -59,7 +59,12 @@
String annotationName = ann.getClass().getName();
RuntimeConfig config = getRuntimeConfig();
- String beanName = (String) ReflectUtil.executeMethod(ann.annotationType(), "getName");
+
+ javax.faces.bean.ManagedBean annCasted = (javax.faces.bean.ManagedBean) ann;
+
+ String beanName = annCasted.name();
+
+
beanName = beanName.replaceAll("\"", "");
if (!hasToReregister(beanName, clazz)) {
return;
Copied: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/GenericAnnotationScanner.java (from r891262, myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/JavaAnnotationScanner.java)
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/GenericAnnotationScanner.java?p2=myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/GenericAnnotationScanner.java&p1=myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/JavaAnnotationScanner.java&r1=891262&r2=891288&rev=891288&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/JavaAnnotationScanner.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/GenericAnnotationScanner.java Wed Dec 16 16:21:03 2009
@@ -40,7 +40,7 @@
* wherever possible
*/
-public class JavaAnnotationScanner extends BaseAnnotationScanListener implements AnnotationScanner {
+public class GenericAnnotationScanner extends BaseAnnotationScanListener implements AnnotationScanner {
List<AnnotationScanListener> _listeners = new LinkedList<AnnotationScanListener>();
@@ -51,20 +51,11 @@
ScriptingWeaver _weaver = null;
- public JavaAnnotationScanner() {
+ public GenericAnnotationScanner() {
initDefaultListeners();
}
- public JavaAnnotationScanner(String... sourcePaths) {
-
- for (String source : sourcePaths) {
- _sourcePaths.addFirst(source);
- }
- initDefaultListeners();
- }
-
-
- public JavaAnnotationScanner(ScriptingWeaver weaver) {
+ public GenericAnnotationScanner(ScriptingWeaver weaver) {
_weaver = weaver;
initDefaultListeners();
}
@@ -128,23 +119,7 @@
}*/
}
-
- /*
- initSourcePaths();
- JavaSource[] sources = _builder.getSources();
- for (JavaSource source : sources) {
- JavaClass[] classes = source.getClasses();
- for (JavaClass clazz : classes) {
- Annotation[] anns = clazz.getAnnotations();
- if (anns != null && anns.length > 0) {
- addOrMoveAnnotations(clazz, anns);
- } else {
- removeAnnotations(clazz);
- }
- }
-
- }*/
- }
+ }
/**
Propchange: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/GenericAnnotationScanner.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/GenericAnnotationScanner.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/faces-config.xml
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/faces-config.xml?rev=891288&r1=891287&r2=891288&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/faces-config.xml (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/faces-config.xml Wed Dec 16 16:21:03 2009
@@ -43,17 +43,7 @@
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
-->
- <managed-bean>
- <managed-bean-name>blogView</managed-bean-name>
- <managed-bean-class>org.apache.myfaces.groovyloader.blog.Blog</managed-bean-class>
- <managed-bean-scope>request</managed-bean-scope>
- </managed-bean>
- <managed-bean>
- <managed-bean-name>blogService</managed-bean-name>
- <managed-bean-class>org.apache.myfaces.groovyloader.blog.BlogService</managed-bean-class>
- <managed-bean-scope>application</managed-bean-scope>
- </managed-bean>
<managed-bean>
<managed-bean-name>javaBlogView</managed-bean-name>
Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/Blog.groovy
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/Blog.groovy?rev=891288&r1=891287&r2=891288&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/Blog.groovy (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/Blog.groovy Wed Dec 16 16:21:03 2009
@@ -21,9 +21,15 @@
import org.apache.commons.logging.Log
import org.apache.commons.logging.LogFactory
import org.apache.myfaces.groovyloader.blog.JSFUtil;
-import org.apache.myfaces.groovyloader.blog.BlogService;
+import org.apache.myfaces.groovyloader.blog.BlogService
+import javax.faces.bean.ManagedBean
+import javax.faces.bean.SessionScoped
+import javax.faces.bean.RequestScoped;
+@ManagedBean(name = "blogView")
+@RequestScoped
+
public class Blog {
//bug application and session scoped beans are not refreshed structurally yet
@@ -51,7 +57,7 @@
}
- def entry = new BlogEntry()
+ BlogEntry entry = new BlogEntry()
//we now map it in the verbose way, the lean way would be to do direct introspection attribute mapping
entry.firstName = firstName
@@ -60,6 +66,7 @@
entry.content = content
+
service.addEntry(entry)
//we stay on the same page
Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogEntry.groovy
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogEntry.groovy?rev=891288&r1=891287&r2=891288&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogEntry.groovy (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogEntry.groovy Wed Dec 16 16:21:03 2009
@@ -28,4 +28,9 @@
String topic = ""
String content = ""
+ public String getTopic() {
+ return topic;
+ }
+
+
}
\ No newline at end of file
Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService.groovy
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService.groovy?rev=891288&r1=891287&r2=891288&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService.groovy (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService.groovy Wed Dec 16 16:21:03 2009
@@ -21,18 +21,26 @@
import org.apache.myfaces.groovyloader.blog.BlogEntry;
import java.util.List
import org.apache.commons.logging.Log
-import org.apache.commons.logging.LogFactory;
-
-
+import org.apache.commons.logging.LogFactory
+import javax.faces.bean.ManagedBean
+import javax.faces.bean.ApplicationScoped;
+@ManagedBean(name = "blogService")
+@ApplicationScoped
public class BlogService {
List blogEntries = new ArrayList()
- public void addEntry(def entry) {
+ public java.util.List getBlogEntries() {
+ return blogEntries
+ }
+
+ public void addEntry(BlogEntry entry) {
Log log = LogFactory.getLog(BlogService.class)
- log.info("Adding entry reloaded 3")
- blogEntries << entry
+ log.info("Adding entry, topic: " + entry.topic)
+ blogEntries.add (entry)
+
+ log.info("blogentries size"+blogEntries.size())
}
}
\ No newline at end of file
Copied: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService2.groovy (from r891262, myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService.groovy)
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService2.groovy?p2=myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService2.groovy&p1=myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService.groovy&r1=891262&r2=891288&rev=891288&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService.groovy (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/blog/BlogService2.groovy Wed Dec 16 16:21:03 2009
@@ -21,18 +21,28 @@
import org.apache.myfaces.groovyloader.blog.BlogEntry;
import java.util.List
import org.apache.commons.logging.Log
-import org.apache.commons.logging.LogFactory;
+import org.apache.commons.logging.LogFactory
+import javax.faces.bean.ManagedBean
+import javax.faces.bean.ApplicationScoped;
-public class BlogService {
+public class BlogService2 {
List blogEntries = new ArrayList()
+ public java.util.List getBlogEntries() {
+ return blogEntries
+ }
+
public void addEntry(def entry) {
Log log = LogFactory.getLog(BlogService.class)
- log.info("Adding entry reloaded 3")
- blogEntries << entry
+ log.info("Adding entry, topic xxx: " + entry.topic)
+ blogEntries.add (entry)
+
+ log.info("blogentries size"+blogEntries.size())
}
+
+
}
\ No newline at end of file
Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer1.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer1.java?rev=891288&r1=891287&r2=891288&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer1.java (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer1.java Wed Dec 16 16:21:03 2009
@@ -42,7 +42,6 @@
* the annotation is dynamic you can change it on the fly or move it from one
* class to the other
*/
- @FacesRenderer(componentFamily = "javax.faces.Input", rendererType = "at.irian.JavaTestRenderer")
public class JavaTestRenderer1 extends HtmlTextRendererBase {
Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.java?rev=891288&r1=891287&r2=891288&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.java (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.java Wed Dec 16 16:21:03 2009
@@ -32,6 +32,9 @@
* @author Werner Punz (latest modification by $Author$)
* @version $Revision$ $Date$
*/
+
+ @FacesRenderer(componentFamily = "javax.faces.Input", rendererType = "at.irian.JavaTestRenderer")
+
public class JavaTestRenderer2 extends HtmlTextareaRendererBase {
private static final String MSG = "Hello world from Renderer 2 ";
Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/blog.xhtml
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/blog.xhtml?rev=891288&r1=891287&r2=891288&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/blog.xhtml (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/blog.xhtml Wed Dec 16 16:21:03 2009
@@ -30,11 +30,11 @@
</h:panelGrid>
<h:panelGrid columns = "1">
<h:outputText value = "Blog Entries" />
- <t:dataList value = "#{blogService.blogEntries}" var = "item">
-
+ <ui:repeat value = "#{blogService.blogEntries}" var = "item">
+
<h:outputText value = "#{item.topic}" />
<h:outputText value = "#{item.content}" /><br />
- </t:dataList>
+ </ui:repeat>
</h:panelGrid>
</h:form>
Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/javablog.xhtml
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/javablog.xhtml?rev=891288&r1=891287&r2=891288&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/javablog.xhtml (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/javablog.xhtml Wed Dec 16 16:21:03 2009
@@ -37,7 +37,7 @@
<h:panelGrid columns = "1">
<h:outputText value = "Blog Entries" />
<ui:repeat value = "#{javaBlogService.blogEntries}" var = "item">
-
+ xxx
<h:outputText value = "#{item.topic}" />
<h:outputText value = "#{item.content}" /><br />
</ui:repeat>