[Commits] (bcm) add a non-cosmo-specific base class, SimpleVarSetterTag, for simple JSP tags

commits at osafoundation.org commits at osafoundation.org
Thu Apr 7 17:14:49 PDT 2005


Commit by: bcm
Modified files:
server/core/src/chsrv-core.tld 1.4 1.5
server/core/src/org/osaf/chandler/server/jsp/tag/UserTag.java 1.2 1.3
server/core/src/org/osaf/chandler/server/jsp/tag/HomedirTag.java 1.2 None
server/core/src/org/osaf/jsp/tag/SimpleVarSetterTag.java None 1.1
server/docs/TODO.txt 1.40 1.41
server/web/etc/MessageResources.properties 1.1 1.2
server/web/web/WEB-INF/struts-config.xml 1.1 1.2
server/web/web/WEB-INF/jsp/layout.jsp 1.1 1.2
server/web/web/WEB-INF/jsp/tagfiles.jsp 1.1 1.2
server/web/web/WEB-INF/jsp/taglibs.jsp 1.1 1.2
server/web/web/WEB-INF/jsp/welcome.jsp 1.1 1.2
server/web/web/WEB-INF/jsp/home.jsp 1.1 None
server/web/web/WEB-INF/jsp/error/connect.jsp 1.1 1.2
server/web/web/WEB-INF/jsp/error/general.jsp 1.1 1.2
server/web/web/WEB-INF/jsp/user/list.jsp 1.1 1.2
server/web/web/WEB-INF/jsp/user/view.jsp 1.1 1.2

Log message:
add a non-cosmo-specific base class, SimpleVarSetterTag, for simple JSP tags
that set a scripting variable. re-implement UserTag to exend this base class.

get rid of the homedir tag - it's very simple, and its functionality can be
encapsulated in a tag file (which i'll put in very soon, once i figure out the
syntax for returning a value from a tag file)

add a "share root" link in the main nav for root users to access the root of
the content store. am not terribly happy with the term "share root" but can't
think of anything more descriptive yet still concise.

for regular users, add the full URL to his home directory and some
explanatory text to the welcome page.

make a new stacktrace.tag tag file that outputs a stack trace, and used it in
two error pages.

add home directory to user list.


ViewCVS links:
http://cvs.osafoundation.org/index.cgi/server/core/src/chsrv-core.tld.diff?r1=text&tr1=1.4&r2=text&tr2=1.5
http://cvs.osafoundation.org/index.cgi/server/core/src/org/osaf/chandler/server/jsp/tag/UserTag.java.diff?r1=text&tr1=1.2&r2=text&tr2=1.3
http://cvs.osafoundation.org/index.cgi/server/core/src/org/osaf/chandler/server/jsp/tag/HomedirTag.java.diff?r1=text&tr1=1.2&r2=text&tr2=None
http://cvs.osafoundation.org/index.cgi/server/core/src/org/osaf/jsp/tag/SimpleVarSetterTag.java?rev=1.1&content-type=text/vnd.viewcvs-markup
http://cvs.osafoundation.org/index.cgi/server/docs/TODO.txt.diff?r1=text&tr1=1.40&r2=text&tr2=1.41
http://cvs.osafoundation.org/index.cgi/server/web/etc/MessageResources.properties.diff?r1=text&tr1=1.1&r2=text&tr2=1.2
http://cvs.osafoundation.org/index.cgi/server/web/web/WEB-INF/struts-config.xml.diff?r1=text&tr1=1.1&r2=text&tr2=1.2
http://cvs.osafoundation.org/index.cgi/server/web/web/WEB-INF/jsp/layout.jsp.diff?r1=text&tr1=1.1&r2=text&tr2=1.2
http://cvs.osafoundation.org/index.cgi/server/web/web/WEB-INF/jsp/tagfiles.jsp.diff?r1=text&tr1=1.1&r2=text&tr2=1.2
http://cvs.osafoundation.org/index.cgi/server/web/web/WEB-INF/jsp/taglibs.jsp.diff?r1=text&tr1=1.1&r2=text&tr2=1.2
http://cvs.osafoundation.org/index.cgi/server/web/web/WEB-INF/jsp/welcome.jsp.diff?r1=text&tr1=1.1&r2=text&tr2=1.2
http://cvs.osafoundation.org/index.cgi/server/web/web/WEB-INF/jsp/home.jsp.diff?r1=text&tr1=1.1&r2=text&tr2=None
http://cvs.osafoundation.org/index.cgi/server/web/web/WEB-INF/jsp/error/connect.jsp.diff?r1=text&tr1=1.1&r2=text&tr2=1.2
http://cvs.osafoundation.org/index.cgi/server/web/web/WEB-INF/jsp/error/general.jsp.diff?r1=text&tr1=1.1&r2=text&tr2=1.2
http://cvs.osafoundation.org/index.cgi/server/web/web/WEB-INF/jsp/user/list.jsp.diff?r1=text&tr1=1.1&r2=text&tr2=1.2
http://cvs.osafoundation.org/index.cgi/server/web/web/WEB-INF/jsp/user/view.jsp.diff?r1=text&tr1=1.1&r2=text&tr2=1.2

Index: server/docs/TODO.txt
diff -u server/docs/TODO.txt:1.40 server/docs/TODO.txt:1.41
--- server/docs/TODO.txt:1.40	Thu Apr  7 12:31:21 2005
+++ server/docs/TODO.txt	Thu Apr  7 17:14:43 2005
@@ -1,17 +1,15 @@
 
-PRE-RELEASE
+0.1 RELEASE
 ===========
 
- * re-implement HomedirTag
- * add home link for root users that goes to /home/
- * put homedir on user list and on welcome page
+ * use tag files to generate homedir uri and homedir url
  * try putting all stuff from tomcat's common/lib and common/classes
    back into the single webapp
  * rename "web" subproject to something better
  * remove console and webdav webapps
  * remove slide
 
-0.1 RELEASE
+0.2 RELEASE
 ===========
 
 source code control/build system:
@@ -21,6 +19,7 @@
  * move console webapp into a webui subproject
  * move webdav webapp into a webdav subproject
  * change all packages from org.osaf.chandler.server to org.osaf.cosmo
+ * precompile jsps for distribution
 
 core:
 

Index: server/core/src/org/osaf/chandler/server/jsp/tag/UserTag.java
diff -u server/core/src/org/osaf/chandler/server/jsp/tag/UserTag.java:1.2 server/core/src/org/osaf/chandler/server/jsp/tag/UserTag.java:1.3
--- server/core/src/org/osaf/chandler/server/jsp/tag/UserTag.java:1.2	Thu Apr  7 12:31:20 2005
+++ server/core/src/org/osaf/chandler/server/jsp/tag/UserTag.java	Thu Apr  7 17:14:42 2005
@@ -5,29 +5,25 @@
 import org.osaf.cosmo.security.CosmoSecurityException;
 import org.osaf.cosmo.security.CosmoSecurityManager;
 
-import org.osaf.spring.web.util.WebApplicationContextAwareTagUtils;
+import org.osaf.jsp.tag.SimpleVarSetterTag;
 
-import java.io.IOException;
+import org.osaf.spring.web.util.WebApplicationContextAwareTagUtils;
 
 import javax.servlet.ServletContext;
 import javax.servlet.jsp.JspException;
 import javax.servlet.jsp.PageContext;
-import javax.servlet.jsp.tagext.SimpleTagSupport;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-import org.springframework.web.util.TagUtils;
-
 /**
  * This tag provides access to the {@link User} object provided by
- * the current Cosmo security context. It sets the
- * <code>User</code> in a scripting variable named by the
- * <code>var</code> attribute in the scope named by the
- * <code>scope</code> attribute (defaulting to page scope if none is
- * provided).
+ * the current Cosmo security context as the value of a scripting
+ * variable.
+ *
+ * @see org.osaf.jsp.tag.SimpleVarSetterTag
  */
-public class UserTag extends SimpleTagSupport {
+public class UserTag extends SimpleVarSetterTag {
     private static final Log log = LogFactory.getLog(UserTag.class);
 
     /** The name of the Spring bean identifying the tag's
@@ -36,47 +32,23 @@
     public static final String BEAN_SECURITY_MANAGER =
         "securityManager";
 
-    private String scope = "page";
-    private String var;
-
     /**
+     * @return the <code>User</code> provided by the current security
+     * context 
+     * @throws JspException if there is an error obtaining the
+     * security context
      */
-    public void doTag()
-        throws JspException, IOException {
+    public Object computeValue()
+        throws JspException {
         try {
             ServletContext sc =
                 ((PageContext)getJspContext()).getServletContext();
             CosmoSecurityManager securityManager = (CosmoSecurityManager)
                 WebApplicationContextAwareTagUtils.
                 getBean(sc, BEAN_SECURITY_MANAGER, CosmoSecurityManager.class);
-            User user = securityManager.getSecurityContext().getUser();
-            getJspContext().setAttribute(var, user, TagUtils.getScope(scope));
+            return securityManager.getSecurityContext().getUser();
         } catch (CosmoSecurityException e) {
             throw new JspException("can't get security context", e);
         }
     }
-
-    /**
-     */
-    public String getScope() {
-        return scope;
-    }
-
-    /**
-     */
-    public void setScope(String scope) {
-        this.scope = scope;
-    }
-
-    /**
-     */
-    public String getVar() {
-        return var;
-    }
-
-    /**
-     */
-    public void setVar(String var) {
-        this.var = var;
-    }
 }

Index: server/web/etc/MessageResources.properties
diff -u server/web/etc/MessageResources.properties:1.1 server/web/etc/MessageResources.properties:1.2
--- server/web/etc/MessageResources.properties:1.1	Wed Apr  6 20:15:02 2005
+++ server/web/etc/MessageResources.properties	Thu Apr  7 17:14:43 2005
@@ -1,6 +1,7 @@
 
 Layout.Title=Cosmo sharing server
 Layout.Nav.Main.Welcome=Cosmo
+Layout.Nav.Main.ShareRoot=Share Root
 Layout.Nav.Main.Home=Home
 Layout.Nav.Main.LogOut=Log out
 Layout.Nav.Console.Label=Admin console:
@@ -46,6 +47,8 @@
 Welcome.HeadTitle=Cosmo | Home
 Welcome.WelcomeMsg=Welcome to the Cosmo sharing server installed at <strong>{0}</strong>!
 Welcome.LoggedInAs=You are logged in as <strong>{0}</strong>.
+Welcome.HomeDirectory=Home directory:
+Welcome.YourHomeDirectory=Your home directory is where Chandler places collections shared with other people. You may also use any WebDAV client to browse your home directory and store files.
 
 #
 # User messages

Index: server/web/web/WEB-INF/jsp/layout.jsp
diff -u server/web/web/WEB-INF/jsp/layout.jsp:1.1 server/web/web/WEB-INF/jsp/layout.jsp:1.2
--- server/web/web/WEB-INF/jsp/layout.jsp:1.1	Wed Apr  6 20:15:04 2005
+++ server/web/web/WEB-INF/jsp/layout.jsp	Thu Apr  7 17:14:44 2005
@@ -7,7 +7,7 @@
 
 <c:if test="${empty showNav}">
   <c:set var="showNav" value="true"/>
-  <chc:user var="user"/>
+  <cosmo-core:user var="user"/>
 </c:if>
 
 <html:html xhtml="true">
@@ -34,6 +34,10 @@
           <td align="right" valign="middle">
             <!-- main navbar -->
             <div class="md">
+              <authz:authorize ifAllGranted="ROLE_ROOT">
+                <html:link page="/home/"><fmt:message key="Layout.Nav.Main.ShareRoot"/></html:link>
+              |
+              </authz:authorize>
               <authz:authorize ifAllGranted="ROLE_USER">
                 <html:link page="/home/${user.username}/"><fmt:message key="Layout.Nav.Main.Home"/></html:link>
               |

Index: server/web/web/WEB-INF/jsp/tagfiles.jsp
diff -u server/web/web/WEB-INF/jsp/tagfiles.jsp:1.1 server/web/web/WEB-INF/jsp/tagfiles.jsp:1.2
--- server/web/web/WEB-INF/jsp/tagfiles.jsp:1.1	Wed Apr  6 20:15:04 2005
+++ server/web/web/WEB-INF/jsp/tagfiles.jsp	Thu Apr  7 17:14:44 2005
@@ -1 +1 @@
-<%@ taglib tagdir="/WEB-INF/tags"      prefix="ch"    %>
+<%@ taglib tagdir="/WEB-INF/tags"      prefix="cosmo"    %>

Index: server/web/web/WEB-INF/struts-config.xml
diff -u server/web/web/WEB-INF/struts-config.xml:1.1 server/web/web/WEB-INF/struts-config.xml:1.2
--- server/web/web/WEB-INF/struts-config.xml:1.1	Wed Apr  6 20:15:03 2005
+++ server/web/web/WEB-INF/struts-config.xml	Thu Apr  7 17:14:44 2005
@@ -47,7 +47,7 @@
 
     <action path="/logout"
             type="org.osaf.struts.OSAFLogoutAction">
-      <forward name="ok" path="/welcome" redirect="true"/>
+      <forward name="ok" path="/" redirect="true"/>
     </action>
 
     <!-- user actions -->

Index: server/web/web/WEB-INF/jsp/taglibs.jsp
diff -u server/web/web/WEB-INF/jsp/taglibs.jsp:1.1 server/web/web/WEB-INF/jsp/taglibs.jsp:1.2
--- server/web/web/WEB-INF/jsp/taglibs.jsp:1.1	Wed Apr  6 20:15:04 2005
+++ server/web/web/WEB-INF/jsp/taglibs.jsp	Thu Apr  7 17:14:44 2005
@@ -5,4 +5,5 @@
 <%@ taglib uri="http://struts.apache.org/tags-logic-el"   prefix="logic"  %>
 <%@ taglib uri="http://struts.apache.org/tags-tiles-el"   prefix="tiles"  %>
 <%@ taglib uri="http://acegisecurity.sf.net/authz"        prefix="authz"  %>
-<%@ taglib uri="http://osafoundation.org/server/jsp/core" prefix="chc"    %>
+<%@ taglib uri="http://osafoundation.org/cosmo/jsp/core"
+    prefix="cosmo-core"  %>

Index: server/core/src/chsrv-core.tld
diff -u server/core/src/chsrv-core.tld:1.4 server/core/src/chsrv-core.tld:1.5
--- server/core/src/chsrv-core.tld:1.4	Thu Apr  7 12:31:19 2005
+++ server/core/src/chsrv-core.tld	Thu Apr  7 17:14:42 2005
@@ -8,54 +8,8 @@
   <display-name>Chandler Server core</display-name>
   <tlib-version>0.1</tlib-version>
   <jspversion>2.0</jspversion>
-  <short-name>chc</short-name>
-  <uri>http://osafoundation.org/server/jsp/core</uri>
-  <tag>
-    <description>
-      Calculates the unescaped URI path of a user's home directory
-      given the user's username.
-    </description>
-    <name>homedir</name>
-    <tag-class>org.osaf.chandler.server.jsp.tag.HomedirTag</tag-class>
-    <body-content>empty</body-content>
-    <attribute>
-      <description>
-        The unescaped base URI path which is prepended to the
-        calculated home directory URI path (defaults to /).
-      </description>
-      <name>basepath</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-      <description>
-        Scope in which the scripting variable holding the calculated
-        home directory URI path is placed (defaults to page).
-      </description>
-      <name>scope</name>
-      <required>false</required>
-      <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-      <description>
-        Username of the user for whom the home directory URI path
-        is to be calculated.
-      </description>
-      <name>username</name>
-      <required>true</required>
-      <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-      <description>
-        Name of the exported scoped variable for the calculated
-        home directory URI path as a String. If not present, the URI
-        path is written to the current JSP output stream.
-      </description>
-      <name>var</name>
-      <required>false</required>
-      <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
+  <short-name>cosmo-core</short-name>
+  <uri>http://osafoundation.org/cosmo/jsp/core</uri>
   <tag>
     <description>
       Returns a User instance representing the currently authenticated

Index: server/web/web/WEB-INF/jsp/error/connect.jsp
diff -u server/web/web/WEB-INF/jsp/error/connect.jsp:1.1 server/web/web/WEB-INF/jsp/error/connect.jsp:1.2
--- server/web/web/WEB-INF/jsp/error/connect.jsp:1.1	Wed Apr  6 20:15:04 2005
+++ server/web/web/WEB-INF/jsp/error/connect.jsp	Thu Apr  7 17:14:45 2005
@@ -5,15 +5,4 @@
 <p>
   <fmt:message key="Error.Connect.UnableToConnect"/>
 </p>
-<c:if test="${not empty Exception}">
-  <div class="pre">
-${Exception}<c:forEach var="element" items="${Exception.stackTrace}">
-    at ${element.className}.${element.methodName}(${element.fileName}:${element.lineNumber})</c:forEach>
-</div>
-  <c:if test="${not empty Exception.cause}">
-    <div class="pre">
-${Exception.cause}<c:forEach var="element" items="${Exception.cause.stackTrace}">
-    at ${element.className}.${element.methodName}(${element.fileName}:${element.lineNumber})</c:forEach>
-  </div>
-  </c:if>
-</c:if>
+<cosmo:stacktrace exception="${Exception}"/>

Index: server/web/web/WEB-INF/jsp/error/general.jsp
diff -u server/web/web/WEB-INF/jsp/error/general.jsp:1.1 server/web/web/WEB-INF/jsp/error/general.jsp:1.2
--- server/web/web/WEB-INF/jsp/error/general.jsp:1.1	Wed Apr  6 20:15:04 2005
+++ server/web/web/WEB-INF/jsp/error/general.jsp	Thu Apr  7 17:14:45 2005
@@ -5,15 +5,4 @@
 <p>
   <fmt:message key="Error.General.ErrorOccurred"/>
 </p>
-<c:if test="${not empty Exception}">
-  <div class="pre">
-${Exception}<c:forEach var="element" items="${Exception.stackTrace}">
-    at ${element.className}.${element.methodName}(${element.fileName}:${element.lineNumber})</c:forEach>
-</div>
-  <c:if test="${not empty Exception.cause}">
-    <div class="pre">
-${Exception.cause}<c:forEach var="element" items="${Exception.cause.stackTrace}">
-    at ${element.className}.${element.methodName}(${element.fileName}:${element.lineNumber})</c:forEach>
-  </div>
-  </c:if>
-</c:if>
+<cosmo:stacktrace exception="${Exception}"/>

Index: server/web/web/WEB-INF/jsp/welcome.jsp
diff -u server/web/web/WEB-INF/jsp/welcome.jsp:1.1 server/web/web/WEB-INF/jsp/welcome.jsp:1.2
--- server/web/web/WEB-INF/jsp/welcome.jsp:1.1	Wed Apr  6 20:15:04 2005
+++ server/web/web/WEB-INF/jsp/welcome.jsp	Thu Apr  7 17:14:44 2005
@@ -1,7 +1,18 @@
 <%@ include file="/WEB-INF/jsp/taglibs.jsp"  %>
 <%@ include file="/WEB-INF/jsp/tagfiles.jsp" %>
 
-<chc:user var="user"/>
+<cosmo-core:user var="user"/>
+<c:url var="homedirPage" value="/home/${user.username}/"/>
+
+<c:set var="homedirUrl"
+       value="${pageContext.request.scheme}://${pageContext.request.serverName}"/>
+<c:if test="${(pageContext.request.secure &&
+            pageContext.request.serverPort != 443) ||
+            (pageContext.request.serverPort != 80)}">
+  <c:set var="homedirUrl"
+         value="${homedirUrl}:${pageContext.request.serverPort}"/>
+</c:if>
+<c:set var="homedirUrl" value="${homedirUrl}${homedirPage}"/>
 
 <p>
   <fmt:message key="Welcome.WelcomeMsg">
@@ -11,3 +22,14 @@
     <fmt:param value="${user.username}"/>
   </fmt:message>
 </p>
+<authz:authorize ifAllGranted="ROLE_USER">
+  <p>
+    <fmt:message key="Welcome.HomeDirectory"/>
+    <html:link page="${homedirPage}">
+      <b>${homedirUrl}</b>
+    </html:link>
+  </p>
+  <p>
+    <fmt:message key="Welcome.YourHomeDirectory"/>
+  </p>
+</authz:authorize>

Index: server/web/web/WEB-INF/jsp/user/list.jsp
diff -u server/web/web/WEB-INF/jsp/user/list.jsp:1.1 server/web/web/WEB-INF/jsp/user/list.jsp:1.2
--- server/web/web/WEB-INF/jsp/user/list.jsp:1.1	Wed Apr  6 20:15:04 2005
+++ server/web/web/WEB-INF/jsp/user/list.jsp	Thu Apr  7 17:14:46 2005
@@ -1,7 +1,7 @@
 <%@ include file="/WEB-INF/jsp/taglibs.jsp"  %>
 <%@ include file="/WEB-INF/jsp/tagfiles.jsp" %>
 
-<ch:cnfmsg/>
+<cosmo:cnfmsg/>
 
 <c:choose>
   <c:when test="${not empty Users}">
@@ -11,6 +11,9 @@
           <b><fmt:message key="User.List.TH.User"/></b>
         </td>
         <td class="md" valign="bottom">
+          <b><fmt:message key="User.List.TH.Homedir"/></b>
+        </td>
+        <td class="md" valign="bottom">
           <b><fmt:message key="User.List.TH.Email"/></b>
         </td>
         <td class="md" valign="bottom">
@@ -21,6 +24,7 @@
         </td>
       </tr>
       <c:forEach var="user" items="${Users}">
+        <c:url var="homedirPage" value="/home/${user.username}/"/>
         <tr>
           <td class="md" nowrap="nowrap">
             <html:link page="/user/${user.username}">
@@ -28,6 +32,11 @@
             </html:link>
           </td>
           <td class="md" nowrap="nowrap">
+            <html:link target="homedir" page="${homedirPage}">
+              ${homedirPage}
+            </html:link>
+          </td>
+          <td class="md" nowrap="nowrap">
             <html:link href="mailto:${user.email}">${user.email}</html:link>
           </td>
           <td class="md" nowrap="nowrap">
@@ -60,7 +69,7 @@
       <td class="md" align="left">
         <html:text property="user.username" size="32" maxlength="32"
                    styleClass="md"/>
-        <ch:errmsg property="user.username"/>
+        <cosmo:errmsg property="user.username"/>
       </td>
     </tr>
     <tr>
@@ -70,7 +79,7 @@
       <td class="md" align="left">
         <html:text property="user.email" size="32" maxlength="32"
                    styleClass="md"/>
-        <ch:errmsg property="user.email"/>
+        <cosmo:errmsg property="user.email"/>
       </td>
     </tr>
     <tr>
@@ -80,7 +89,7 @@
       <td class="md" align="left">
         <html:password property="password" size="16" maxlength="16"
                        styleClass="md"/>
-        <ch:errmsg property="password"/>
+        <cosmo:errmsg property="password"/>
       </td>
     </tr>
     <tr>
@@ -90,7 +99,7 @@
       <td class="md" align="left">
         <html:password property="confirm" size="16" maxlength="16"
                        styleClass="md"/>
-        <ch:errmsg property="confirm"/>
+        <cosmo:errmsg property="confirm"/>
       </td>
     </tr>
     <tr>
@@ -103,7 +112,7 @@
                          styleClass="md"/>
           ${rolename}<br/>
         </c:forEach>
-        <ch:errmsg property="role"/>
+        <cosmo:errmsg property="role"/>
       </td>
     </tr>
     <tr>

Index: server/web/web/WEB-INF/jsp/user/view.jsp
diff -u server/web/web/WEB-INF/jsp/user/view.jsp:1.1 server/web/web/WEB-INF/jsp/user/view.jsp:1.2
--- server/web/web/WEB-INF/jsp/user/view.jsp:1.1	Wed Apr  6 20:15:04 2005
+++ server/web/web/WEB-INF/jsp/user/view.jsp	Thu Apr  7 17:14:46 2005
@@ -30,7 +30,7 @@
       <td class="md" align="left">
         <html:text property="user.email" size="32" maxlength="32"
                    styleClass="md"/>
-        <ch:errmsg property="user.email"/>
+        <cosmo:errmsg property="user.email"/>
       </td>
     </tr>
     <tr>
@@ -40,7 +40,7 @@
       <td class="md" align="left">
         <html:password property="password" size="16" maxlength="16"
                        styleClass="md"/>
-        <ch:errmsg property="password"/>
+        <cosmo:errmsg property="password"/>
       </td>
     </tr>
     <tr>
@@ -50,7 +50,7 @@
       <td class="md" align="left">
         <html:password property="confirm" size="16" maxlength="16"
                        styleClass="md"/>
-        <ch:errmsg property="confirm"/>
+        <cosmo:errmsg property="confirm"/>
       </td>
     </tr>
     <tr>
@@ -63,7 +63,7 @@
                          styleClass="md"/>
           ${rolename}<br/>
         </c:forEach>
-        <ch:errmsg property="role"/>
+        <cosmo:errmsg property="role"/>
       </td>
     </tr>
     <tr>



More information about the Commits mailing list