Re: continuum-webapp issues [was: Re: svn commit: r431764 - /maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp]
I know your problems solved, but this is how I did it last night.. ec:column property=actions title=nbsp; ww:url id=editUrl action=buildDefinition method=input ww:param name=projectGroupId${pageScope.buildDefinitionSummary.projectGroupId}/ww:param ww:param name=buildDefinitionId${pageScope.buildDefinitionSummary.id}/ww:param /ww:url ww:url id=removeUrl action=removeGroupBuildDefinition ww:param name=projectGroupId${pageScope.buildDefinitionSummary.projectGroupId}/ww:param ww:param name=buildDefinitionId${pageScope.buildDefinitionSummary.id}/ww:param ww:param name=confirmed value=false/ /ww:url ww:a href=%{editUrl}ww:text name=edit//ww:a nbsp; ww:a href=%{removeUrl}ww:text name=delete//ww:a /ec:column On 8/16/06, Kenney Westerhof [EMAIL PROTECTED] wrote: (fwd again, now using correct address.. does anybody have a nice alternative for Thunderbird on linux? :/ ) --- Ok, I'm trying to get this to work. It seems that the ww: tags use OGNL expressions to set/get values from the action. (I'm missing a design document on how actions/jsp/etc are related, but I'm figuring it out... slowly..). Code snippet from summary.jsp (simplified): ec:table items=projects var=project ec:row highlightRow=true ec:column property=state title=nbsp; width=1% cell=org.apache.maven.continuum.web.view.StateCell/ ec:column property=name title=summary.projectTable.name width=48% a href=ww:url action='projectView.action' ww:param name='projectId' value='${project.id}' / /ww:url${project.name}/a /ec:column --- From what I understand the following happens when you go to /summary.action: * The SummaryAction class is executed and the summary.jsp used to render the output. * The ec:table uses the SummaryAction.getProjects()'s value to iterate over the projects (how it retrieves that is a mystery; it must somehow be registered as a PageContext scope'd variable 'projects'??) The ec:* taglib only uses the JspPageContext e.a. to retrieve/store variables. * The ec:table makes the current item (from the projects list) available in a variable 'project'. This is only so that the ${project.*} expressions in plain-text (i.e. not within tags and their parameters) can be evaluated by the JspWriter. * Next taglib: webwork. The ww:url and ww:param values use OGNL expressions to evaluate parameters. So ww:param . value=project.id actually tries SummaryAction.getProject().getId(). * Since the extremecomponents taglib doesn't update the action with the current loop variable (call SummaryAction.setProject(project), which I added to test this), the ww:param tag doesn't work since the value can't be evaluated. Some more strange things: * ${project.id} works outside of tags (but inside ec:column), since 'project' is a PageContext scoped variable. * c:set var=test value=${project.id}/ doesn't work; produces '${project.id}' for ${test}. * c:set var=test property=${project.id}/ doesn't work; produces '' for ${test}. * c:set var=test property=project.id/ doesn't work; produces '' for ${test}. * c:set var=test${project.id}/c:set doesn't work; produces '${project.id}' for ${test}. Any ideas? Working examples? (not the a href=ww:url action=../?projectId=${project.id}../a preferrably ;) -- Kenney Kenney Westerhof wrote: Carlos Sanchez wrote: i've seen this problem with tomcat. Works fine with jetty. Aha. I couldn't get jetty to work: [continuum-webapp]$ mvn jetty:run [INFO] Initializing JDO. 13:11:26,739 INFO JPOX.JDO [org.jpox.AbstractPersistenceManagerFactory] PersistenceManagerFactory - Vendor: JPOX Version: Unknown 13:11:26,745 INFO JPOX.JDO [org.jpox.AbstractPersistenceManagerFactory] PersistenceManagerFactory initialised for datastore URL=jdbc:derby:/vol/home/forge/work/opensource-rw/maven-trunks/continuum/continuum-webapp/src/main/webapp/WEB-INF/database;create=true driver=org.apache.derby.jdbc.EmbeddedDriver userName=sa 13:11:26,823 INFO org.quartz.simpl.RAMJobStore [org.quartz.simpl.RAMJobStore] RAMJobStore initialized. 13:11:26,824 INFO org.quartz.impl.StdSchedulerFactory [org.quartz.impl.StdSchedulerFactory] Quartz scheduler 'defaultScheduler' initialized from an externally provided properties instance. 13:11:26,826 INFO org.quartz.impl.StdSchedulerFactory [org.quartz.impl.StdSchedulerFactory] Quartz scheduler version: 1.4.5 13:11:26,828 INFO org.quartz.core.QuartzScheduler [org.quartz.core.QuartzScheduler] Scheduler defaultScheduler_$_NON_CLUSTERED started. [WARNING] Could not find the executable 'ant' in the path '[]'. [WARNING] Could not find the executable 'maven' in the path '[]'. :WARN:
Re: continuum-webapp issues [was: Re: svn commit: r431764 - /maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp]
Ok, the problem is resolved: I upgraded the web.xml to the 2.4 specification. Tomcat correctly uses the 1.0 jstl and applies other 2.3 behaviours if the web.xml is version 2.3, whereas jetty probably always uses the 2.4 spec, which is why that works there (although jetty:run doesn't work here..). I also updated the c:urls to ww:urls. What I see is a lot of non-standard actions, like ww:url value=${notifier.type}NotifierEdit!default.action. Could this easily be changed to ww:url action=edit${notifier.type}Notifier ? Seems cleaner to me. Thanks for your patience and sorry about all the spam! :) -- Kenney Kenney Westerhof wrote: (fwd again, now using correct address.. does anybody have a nice alternative for Thunderbird on linux? :/ ) --- Ok, I'm trying to get this to work. It seems that the ww: tags use OGNL expressions to set/get values from the action. (I'm missing a design document on how actions/jsp/etc are related, but I'm figuring it out... slowly..). Code snippet from summary.jsp (simplified): ec:table items=projects var=project ec:row highlightRow=true ec:column property=state title=nbsp; width=1% cell=org.apache.maven.continuum.web.view.StateCell/ ec:column property=name title=summary.projectTable.name width=48% a href=ww:url action='projectView.action' ww:param name='projectId' value='${project.id}' / /ww:url${project.name}/a /ec:column --- From what I understand the following happens when you go to /summary.action: * The SummaryAction class is executed and the summary.jsp used to render the output. * The ec:table uses the SummaryAction.getProjects()'s value to iterate over the projects (how it retrieves that is a mystery; it must somehow be registered as a PageContext scope'd variable 'projects'??) The ec:* taglib only uses the JspPageContext e.a. to retrieve/store variables. * The ec:table makes the current item (from the projects list) available in a variable 'project'. This is only so that the ${project.*} expressions in plain-text (i.e. not within tags and their parameters) can be evaluated by the JspWriter. * Next taglib: webwork. The ww:url and ww:param values use OGNL expressions to evaluate parameters. So ww:param . value=project.id actually tries SummaryAction.getProject().getId(). * Since the extremecomponents taglib doesn't update the action with the current loop variable (call SummaryAction.setProject(project), which I added to test this), the ww:param tag doesn't work since the value can't be evaluated. Some more strange things: * ${project.id} works outside of tags (but inside ec:column), since 'project' is a PageContext scoped variable. * c:set var=test value=${project.id}/ doesn't work; produces '${project.id}' for ${test}. * c:set var=test property=${project.id}/ doesn't work; produces '' for ${test}. * c:set var=test property=project.id/ doesn't work; produces '' for ${test}. * c:set var=test${project.id}/c:set doesn't work; produces '${project.id}' for ${test}. Any ideas? Working examples? (not the a href=ww:url action=../?projectId=${project.id}../a preferrably ;) -- Kenney Kenney Westerhof wrote: Carlos Sanchez wrote: i've seen this problem with tomcat. Works fine with jetty. Aha. I couldn't get jetty to work: [continuum-webapp]$ mvn jetty:run [INFO] Initializing JDO. 13:11:26,739 INFO JPOX.JDO [org.jpox.AbstractPersistenceManagerFactory] PersistenceManagerFactory - Vendor: JPOX Version: Unknown 13:11:26,745 INFO JPOX.JDO [org.jpox.AbstractPersistenceManagerFactory] PersistenceManagerFactory initialised for datastore URL=jdbc:derby:/vol/home/forge/work/opensource-rw/maven-trunks/continuum/continuum-webapp/src/main/webapp/WEB-INF/database;create=true driver=org.apache.derby.jdbc.EmbeddedDriver userName=sa 13:11:26,823 INFO org.quartz.simpl.RAMJobStore [org.quartz.simpl.RAMJobStore] RAMJobStore initialized. 13:11:26,824 INFO org.quartz.impl.StdSchedulerFactory [org.quartz.impl.StdSchedulerFactory] Quartz scheduler 'defaultScheduler' initialized from an externally provided properties instance. 13:11:26,826 INFO org.quartz.impl.StdSchedulerFactory [org.quartz.impl.StdSchedulerFactory] Quartz scheduler version: 1.4.5 13:11:26,828 INFO org.quartz.core.QuartzScheduler [org.quartz.core.QuartzScheduler] Scheduler defaultScheduler_$_NON_CLUSTERED started. [WARNING] Could not find the executable 'ant' in the path '[]'. [WARNING] Could not find the executable 'maven' in the path '[]'. :WARN: failed [EMAIL PROTECTED]/,file:/vol/home/forge/work/opensource-rw/maven-trunks/continuum/continuum-webapp/src/main/webapp/} :WARN: failed [EMAIL PROTECTED] :WARN: failed [EMAIL PROTECTED] :INFO: Started SelectChannelConnector @ 0.0.0.0:9090 :WARN: failed [EMAIL PROTECTED] [INFO] Jetty server exiting. [INFO]
Re: continuum-webapp issues [was: Re: svn commit: r431764 - /maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp]
The later is most definitely better. It allows you to keep your URLs independent. For example, with the repository browse actions in Archiva, the mapper will convert the action parameters into /browse/group/artifact/version instead of browse.action?group=...artifactId=... etc - Brett On 17/8/06 2:03 AM, Kenney Westerhof wrote: Ok, the problem is resolved: I upgraded the web.xml to the 2.4 specification. Tomcat correctly uses the 1.0 jstl and applies other 2.3 behaviours if the web.xml is version 2.3, whereas jetty probably always uses the 2.4 spec, which is why that works there (although jetty:run doesn't work here..). I also updated the c:urls to ww:urls. What I see is a lot of non-standard actions, like ww:url value=${notifier.type}NotifierEdit!default.action. Could this easily be changed to ww:url action=edit${notifier.type}Notifier ? Seems cleaner to me. Thanks for your patience and sorry about all the spam! :) -- Kenney Kenney Westerhof wrote: (fwd again, now using correct address.. does anybody have a nice alternative for Thunderbird on linux? :/ ) --- Ok, I'm trying to get this to work. It seems that the ww: tags use OGNL expressions to set/get values from the action. (I'm missing a design document on how actions/jsp/etc are related, but I'm figuring it out... slowly..). Code snippet from summary.jsp (simplified): ec:table items=projects var=project ec:row highlightRow=true ec:column property=state title=nbsp; width=1% cell=org.apache.maven.continuum.web.view.StateCell/ ec:column property=name title=summary.projectTable.name width=48% a href=ww:url action='projectView.action' ww:param name='projectId' value='${project.id}' / /ww:url${project.name}/a /ec:column --- From what I understand the following happens when you go to /summary.action: * The SummaryAction class is executed and the summary.jsp used to render the output. * The ec:table uses the SummaryAction.getProjects()'s value to iterate over the projects (how it retrieves that is a mystery; it must somehow be registered as a PageContext scope'd variable 'projects'??) The ec:* taglib only uses the JspPageContext e.a. to retrieve/store variables. * The ec:table makes the current item (from the projects list) available in a variable 'project'. This is only so that the ${project.*} expressions in plain-text (i.e. not within tags and their parameters) can be evaluated by the JspWriter. * Next taglib: webwork. The ww:url and ww:param values use OGNL expressions to evaluate parameters. So ww:param . value=project.id actually tries SummaryAction.getProject().getId(). * Since the extremecomponents taglib doesn't update the action with the current loop variable (call SummaryAction.setProject(project), which I added to test this), the ww:param tag doesn't work since the value can't be evaluated. Some more strange things: * ${project.id} works outside of tags (but inside ec:column), since 'project' is a PageContext scoped variable. * c:set var=test value=${project.id}/ doesn't work; produces '${project.id}' for ${test}. * c:set var=test property=${project.id}/ doesn't work; produces '' for ${test}. * c:set var=test property=project.id/ doesn't work; produces '' for ${test}. * c:set var=test${project.id}/c:set doesn't work; produces '${project.id}' for ${test}. Any ideas? Working examples? (not the a href=ww:url action=../?projectId=${project.id}../a preferrably ;) -- Kenney Kenney Westerhof wrote: Carlos Sanchez wrote: i've seen this problem with tomcat. Works fine with jetty. Aha. I couldn't get jetty to work: [continuum-webapp]$ mvn jetty:run [INFO] Initializing JDO. 13:11:26,739 INFO JPOX.JDO [org.jpox.AbstractPersistenceManagerFactory] PersistenceManagerFactory - Vendor: JPOX Version: Unknown 13:11:26,745 INFO JPOX.JDO [org.jpox.AbstractPersistenceManagerFactory] PersistenceManagerFactory initialised for datastore URL=jdbc:derby:/vol/home/forge/work/opensource-rw/maven-trunks/continuum/continuum-webapp/src/main/webapp/WEB-INF/database;create=true driver=org.apache.derby.jdbc.EmbeddedDriver userName=sa 13:11:26,823 INFO org.quartz.simpl.RAMJobStore [org.quartz.simpl.RAMJobStore] RAMJobStore initialized. 13:11:26,824 INFO org.quartz.impl.StdSchedulerFactory [org.quartz.impl.StdSchedulerFactory] Quartz scheduler 'defaultScheduler' initialized from an externally provided properties instance. 13:11:26,826 INFO org.quartz.impl.StdSchedulerFactory [org.quartz.impl.StdSchedulerFactory] Quartz scheduler version: 1.4.5 13:11:26,828 INFO org.quartz.core.QuartzScheduler [org.quartz.core.QuartzScheduler] Scheduler defaultScheduler_$_NON_CLUSTERED started. [WARNING] Could not find the executable 'ant' in the path '[]'. [WARNING] Could not find the executable 'maven' in the path '[]'. :WARN: failed [EMAIL
Re: JSTL vs WebWork taglibs [Was: svn commit: r431764 - /maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp]
reason is in the other mail. use ww:url for getting action urls (for which there is no standard equivalent). I use c: forEach instead of ww:iterator and so on, though. - Brett On 17/8/06 2:59 AM, Carlos Sanchez wrote: What's the advantage of using webwork ww:url and other ww tags when there's an equivalent in jstl? why not stick to the standard? I'd use jstl by default and ww tags when there's no jstl equivalent. On 8/15/06, Brett Porter [EMAIL PROTECTED] wrote: Since it's an action URL, I strong suggest using ww:url instead. - Brett On 16/08/2006 12:04 PM, Carlos Sanchez wrote: i've seen this problem with tomcat. Works fine with jetty. Please add a jira to put back the right url composition, your changes won't work in some cases (we just moved all url composition to use c:url) On 8/15/06, Brett Porter [EMAIL PROTECTED] wrote: There are two versions of c: - core, and core_rt. If you are including a TLD in the webapp, make sure you have the right one. I usually just omit the tlds in the webapp and use: %@ taglib prefix=c uri=http://java.sun.com/jsp/jstl/core; % (note this is JSTL 1.1, the URL is different for JSTL 1.0, which might also be the problem). This gets pulled from the JAR. Seems to work just fine in MRM. - Brett On 16/08/2006 11:41 AM, [EMAIL PROTECTED] wrote: Author: kenney Date: Tue Aug 15 18:41:17 2006 New Revision: 431764 URL: http://svn.apache.org/viewvc?rev=431764view=rev Log: Use c:url because of the url completion, but not c:param (for now). c:* tags don't evaluate the expressions, somehow. Not sure why this doesn't work.. This problem also exists in schedules.jsp (and probably other places). Added a workaround for the main page for now. Modified: maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp Modified: maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp?rev=431764r1=431763r2=431764view=diff == --- maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp (original) +++ maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp Tue Aug 15 18:41:17 2006 @@ -19,13 +19,8 @@ ec:row highlightRow=true ec:column property=state title=nbsp; width=1% cell=org.apache.maven.continuum.web.view.StateCell/ ec:column property=name title=summary.projectTable.name width=48% -!--this doesn't work as the project.id isn't interpolated -c:url var=projectViewUrl value=/projectView.action - c:param name=projectId value=${project.id}/ -/c:url -a href=c:out value='${projectViewUrl}'/${project.name}/a --- -a href=/projectView.action?projectId=${project.id}${project.name}/a +c:url var=projectViewUrl value=/projectView.action/ +a href=c:out value='${projectViewUrl}?projectId=${project.id}'/${project.name}/a /ec:column ec:column property=version title=summary.projectTable.version width=13%/ ec:column property=buildNumber title=summary.projectTable.build width=5% cell=org.apache.maven.continuum.web.view.BuildCell/ -- Apache Maven - http://maven.apache.org/ Better Builds with Maven - http://library.mergere.com/ -- Apache Maven - http://maven.apache.org/ Better Builds with Maven - http://library.mergere.com/ -- Apache Maven - http://maven.apache.org/ Better Builds with Maven - http://library.mergere.com/
Re: svn commit: r431764 - /maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp
me too. Emmanuel Brett Porter a écrit : Since it's an action URL, I strong suggest using ww:url instead. - Brett On 16/08/2006 12:04 PM, Carlos Sanchez wrote: i've seen this problem with tomcat. Works fine with jetty. Please add a jira to put back the right url composition, your changes won't work in some cases (we just moved all url composition to use c:url) On 8/15/06, Brett Porter [EMAIL PROTECTED] wrote: There are two versions of c: - core, and core_rt. If you are including a TLD in the webapp, make sure you have the right one. I usually just omit the tlds in the webapp and use: %@ taglib prefix=c uri=http://java.sun.com/jsp/jstl/core; % (note this is JSTL 1.1, the URL is different for JSTL 1.0, which might also be the problem). This gets pulled from the JAR. Seems to work just fine in MRM. - Brett On 16/08/2006 11:41 AM, [EMAIL PROTECTED] wrote: Author: kenney Date: Tue Aug 15 18:41:17 2006 New Revision: 431764 URL: http://svn.apache.org/viewvc?rev=431764view=rev Log: Use c:url because of the url completion, but not c:param (for now). c:* tags don't evaluate the expressions, somehow. Not sure why this doesn't work.. This problem also exists in schedules.jsp (and probably other places). Added a workaround for the main page for now. Modified: maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp Modified: maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp?rev=431764r1=431763r2=431764view=diff == --- maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp (original) +++ maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp Tue Aug 15 18:41:17 2006 @@ -19,13 +19,8 @@ ec:row highlightRow=true ec:column property=state title=nbsp; width=1% cell=org.apache.maven.continuum.web.view.StateCell/ ec:column property=name title=summary.projectTable.name width=48% -!--this doesn't work as the project.id isn't interpolated -c:url var=projectViewUrl value=/projectView.action - c:param name=projectId value=${project.id}/ -/c:url -a href=c:out value='${projectViewUrl}'/${project.name}/a --- -a href=/projectView.action?projectId=${project.id}${project.name}/a +c:url var=projectViewUrl value=/projectView.action/ +a href=c:out value='${projectViewUrl}?projectId=${project.id}'/${project.name}/a /ec:column ec:column property=version title=summary.projectTable.version width=13%/ ec:column property=buildNumber title=summary.projectTable.build width=5% cell=org.apache.maven.continuum.web.view.BuildCell/ -- Apache Maven - http://maven.apache.org/ Better Builds with Maven - http://library.mergere.com/