Author: jasha
Date: Sun Jul 8 13:54:05 2012
New Revision: 1358743
URL: http://svn.apache.org/viewvc?rev=1358743&view=rev
Log:
RAVE-658 fix for duplicate header & footer after submitting form
cause: initialize relied on tiles:insertDefinition, methods after submit relied
on view name but used the same jsp with tiles:insertDefinition
Modified:
rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/ReminderController.java
rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/newpassword.jsp
rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/retrieveusername.jsp
Modified:
rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/ReminderController.java
URL:
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/ReminderController.java?rev=1358743&r1=1358742&r2=1358743&view=diff
==============================================================================
---
rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/ReminderController.java
(original)
+++
rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/ReminderController.java
Sun Jul 8 13:54:05 2012
@@ -7,7 +7,7 @@
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
@@ -66,9 +66,11 @@ public class ReminderController {
@RequestMapping(value = {"/retrieveusername", "/newpassword"})
- public void initialize(ModelMap model, HttpServletRequest request) {
+ public String initialize(ModelMap model, HttpServletRequest request) {
model.addAttribute(ModelKeys.CAPTCHA_HTML,
captchaService.createHtml(request));
model.addAttribute(ModelKeys.USER, new UserImpl());
+ return "/retrieveusername".equals(request.getPathInfo()) ?
ViewNames.USERNAME_REQUEST :
+ ViewNames.NEW_PASSWORD_REQUEST;
}
Modified:
rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/newpassword.jsp
URL:
http://svn.apache.org/viewvc/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/newpassword.jsp?rev=1358743&r1=1358742&r2=1358743&view=diff
==============================================================================
---
rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/newpassword.jsp
(original)
+++
rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/newpassword.jsp
Sun Jul 8 13:54:05 2012
@@ -1,101 +1,97 @@
<%--
- ~ Licensed to the Apache Software Foundation (ASF) under one
- ~ or more contributor license agreements. See the NOTICE file
- ~ distributed with this work for additional information
- ~ regarding copyright ownership. The ASF licenses this file
- ~ to you under the Apache License, Version 2.0 (the
- ~ "License"); you may not use this file except in compliance
- ~ with the License. You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing,
- ~ software distributed under the License is distributed on an
- ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- ~ KIND, either express or implied. See the License for the
- ~ specific language governing permissions and limitations
- ~ under the License.
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
--%>
<%@ page language="java" trimDirectiveWhitespaces="true" %>
<%@ include file="/WEB-INF/jsp/includes/taglibs.jsp" %>
<fmt:setBundle basename="messages"/>
-<tiles:insertDefinition name="templates.base">
- <tiles:putAttribute name="pageTitleKey" value="page.newpassword.title"/>
- <tiles:importAttribute name="pageTitleKey" scope="request"/>
-
- <tiles:putAttribute name="body">
- <header>
- <nav>
- <div class="navbar navbar-fixed-top">
- <div class="container">
- <a href="/" class="brand">RAVE</a>
- <ul class="nav pull-right">
- <li class="divider-vertical"></li>
- <li>
- <form class="form-inline "
action="<c:url value="/app/retrieveusername"/>" method="get">
- <fmt:message
key="page.login.forgot.username.button" var="requestNewUsernameButton"/>
- <button class="btn btn-info"
id="requestNewUsernameButton" type="submit"
value="${requestNewUsernameButton}">${requestNewUsernameButton}</button>
- </form>
- </li>
- <li class="divider-vertical"></li>
-
- <li>
- <form class="form-inline"
action="<c:url value="/app/newaccount.jsp"/>" method="get">
- <fieldset>
- <fmt:message
key="page.login.createaccount.button" var="createAccountButtonText"/>
- <button class="btn btn-info"
id="createNewAccountButton" type="submit"
value="${createAccountButtonText}">${createAccountButtonText}</button>
- </fieldset>
- </form>
- </li>
- <li class="divider-vertical"></li>
- </ul>
- </div>
- </div>
- </nav>
- </header>
- <br><br>
- <div class="container navbar-spacer">
- <h1><fmt:message key="page.newpassword.title"/></h1>
- <c:choose>
- <c:when test="${success}">
- <div class="alert-message success">
- <fmt:message key="page.newpassword.email.sent">
- <fmt:param>${email}</fmt:param>
- </fmt:message>
- </div>
- <a href="/"><fmt:message
key="page.newpassword.email.sent.login"/></a>
- </c:when>
-
- <c:otherwise>
+<tiles:putAttribute name="pageTitleKey" value="page.newpassword.title"/>
+<tiles:importAttribute name="pageTitleKey" scope="request"/>
- <form:form cssClass="form-horizontal well"
commandName="user" action="newpassword" method="post">
- <fieldset>
- <p><fmt:message
key="form.all.fields.required"/></p>
-
- <p><form:errors cssClass="error"/></p>
-
- <div class="control-group">
- <label class="control-label"
for="emailField"><fmt:message key="page.general.email"/></label>
- <div class="controls">
- <form:input id="emailField" path="email"
required="required" autofocus="autofocus"/>
- <form:errors path="email"
cssClass="error"/>
- </div>
- </div>
- </fieldset>
- <fieldset>
- <div class="control-group">
- <div class="controls">${captchaHtml}</div>
- </div>
- </fieldset>
- <fieldset>
- <fmt:message
key="page.login.forgot.password.button" var="submitButtonText"/>
- <button type="submit" class="btn btn-primary"
value="${submitButtonText}">${submitButtonText}</button>
- </fieldset>
- </form:form>
- </c:otherwise>
- </c:choose>
+<header>
+ <nav>
+ <div class="navbar navbar-fixed-top">
+ <div class="container">
+ <a href="<c:url value="/"/>" class="brand">RAVE</a>
+ <ul class="nav pull-right">
+ <li class="divider-vertical"></li>
+ <li>
+ <form class="form-inline " action="<c:url
value="/app/retrieveusername"/>" method="get">
+ <fmt:message
key="page.login.forgot.username.button" var="requestNewUsernameButton"/>
+ <button class="btn btn-info"
id="requestNewUsernameButton" type="submit"
value="${requestNewUsernameButton}">${requestNewUsernameButton}</button>
+ </form>
+ </li>
+ <li class="divider-vertical"></li>
+
+ <li>
+ <form class="form-inline" action="<c:url
value="/app/newaccount.jsp"/>" method="get">
+ <fieldset>
+ <fmt:message
key="page.login.createaccount.button" var="createAccountButtonText"/>
+ <button class="btn btn-info"
id="createNewAccountButton" type="submit"
value="${createAccountButtonText}">${createAccountButtonText}</button>
+ </fieldset>
+ </form>
+ </li>
+ <li class="divider-vertical"></li>
+ </ul>
+ </div>
</div>
- </tiles:putAttribute>
-</tiles:insertDefinition>
\ No newline at end of file
+ </nav>
+</header>
+<br><br>
+<div class="container navbar-spacer">
+ <h1><fmt:message key="page.newpassword.title"/></h1>
+ <c:choose>
+ <c:when test="${success}">
+ <div class="alert-message success">
+ <fmt:message key="page.newpassword.email.sent">
+ <fmt:param>${email}</fmt:param>
+ </fmt:message>
+ </div>
+ <a href="<c:url value="/"/>"><fmt:message
key="page.newpassword.email.sent.login"/></a>
+ </c:when>
+
+ <c:otherwise>
+
+ <form:form cssClass="form-horizontal well" commandName="user"
action="newpassword" method="post">
+ <fieldset>
+ <p><fmt:message key="form.all.fields.required"/></p>
+
+ <p><form:errors cssClass="error"/></p>
+
+ <div class="control-group">
+ <label class="control-label"
for="emailField"><fmt:message key="page.general.email"/></label>
+ <div class="controls">
+ <form:input id="emailField" path="email"
required="required" autofocus="autofocus"/>
+ <form:errors path="email" cssClass="error"/>
+ </div>
+ </div>
+ </fieldset>
+ <fieldset>
+ <div class="control-group">
+ <div class="controls">${captchaHtml}</div>
+ </div>
+ </fieldset>
+ <fieldset>
+ <fmt:message key="page.login.forgot.password.button"
var="submitButtonText"/>
+ <button type="submit" class="btn btn-primary"
value="${submitButtonText}">${submitButtonText}</button>
+ </fieldset>
+ </form:form>
+ </c:otherwise>
+ </c:choose>
+</div>
\ No newline at end of file
Modified:
rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/retrieveusername.jsp
URL:
http://svn.apache.org/viewvc/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/retrieveusername.jsp?rev=1358743&r1=1358742&r2=1358743&view=diff
==============================================================================
---
rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/retrieveusername.jsp
(original)
+++
rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/retrieveusername.jsp
Sun Jul 8 13:54:05 2012
@@ -1,101 +1,97 @@
<%--
- ~ Licensed to the Apache Software Foundation (ASF) under one
- ~ or more contributor license agreements. See the NOTICE file
- ~ distributed with this work for additional information
- ~ regarding copyright ownership. The ASF licenses this file
- ~ to you under the Apache License, Version 2.0 (the
- ~ "License"); you may not use this file except in compliance
- ~ with the License. You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing,
- ~ software distributed under the License is distributed on an
- ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- ~ KIND, either express or implied. See the License for the
- ~ specific language governing permissions and limitations
- ~ under the License.
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
--%>
<%@ page language="java" trimDirectiveWhitespaces="true" %>
<%@ include file="/WEB-INF/jsp/includes/taglibs.jsp" %>
<fmt:setBundle basename="messages"/>
-<tiles:insertDefinition name="templates.base">
- <tiles:putAttribute name="pageTitleKey"
value="page.retrieveusername.title"/>
- <tiles:importAttribute name="pageTitleKey" scope="request"/>
-
- <tiles:putAttribute name="body">
- <header>
- <nav>
- <div class="navbar navbar-fixed-top">
- <div class="container">
- <a href="/" class="brand">RAVE</a>
- <ul class="nav pull-right">
- <li class="divider-vertical"></li>
- <li>
- <form class="form-inline"
action="<c:url value="/app/newpassword"/>" method="get">
- <fmt:message
key="page.login.forgot.password.button" var="requestNewPasswordButtonText"/>
- <button class="btn btn-info"
id="requestNewPasswordButton" type="submit"
value="${requestNewPasswordButtonText}">${requestNewPasswordButtonText}</button>
- </form>
- </li>
- <li class="divider-vertical"></li>
- <li>
- <form class="form-inline"
action="<c:url value="/app/newaccount.jsp"/>" method="get">
- <fieldset>
- <fmt:message
key="page.login.createaccount.button" var="createAccountButtonText"/>
- <button class="btn btn-info"
id="createNewAccountButton" type="submit"
value="${createAccountButtonText}">${createAccountButtonText}</button>
- </fieldset>
- </form>
- </li>
- <li class="divider-vertical"></li>
- </ul>
- </div>
- </div>
- </nav>
- </header>
- <br><br>
- <div class="container navbar-spacer">
- <h1><fmt:message key="page.retrieveusername.title"/></h1>
- <c:choose>
- <c:when test="${success}">
-
- <div class="alert-message success">
- <fmt:message key="page.newpassword.email.sent">
- <fmt:param>${email}</fmt:param>
- </fmt:message>
- </div>
- <a href="/"><fmt:message
key="page.newpassword.email.sent.login"/></a>
- </c:when>
+<tiles:putAttribute name="pageTitleKey" value="page.retrieveusername.title"/>
+<tiles:importAttribute name="pageTitleKey" scope="request"/>
- <c:otherwise>
- <form:form cssClass="form-horizontal well"
commandName="user" action="retrieveusername" method="post">
- <fieldset>
- <p><fmt:message
key="form.all.fields.required"/></p>
-
- <p><form:errors cssClass="error"/></p>
-
- <div class="control-group">
-
- <label class="control-label"
for="emailField"><fmt:message key="page.general.email"/></label>
- <div class="controls">
- <form:input id="emailField" path="email"
required="required" autofocus="autofocus"/>
- <form:errors path="email"
cssClass="error"/>
- </div>
- </div>
- </fieldset>
- <fieldset>
- <div class="control-group">
- <div class="controls">${captchaHtml}</div>
- </div>
- </fieldset>
-
- <fieldset>
- <fmt:message
key="page.login.forgot.username.button" var="submitButtonText"/>
- <button class="btn btn-primary" type="submit"
value="${submitButtonText}">${submitButtonText}</button>
- </fieldset>
- </form:form>
- </c:otherwise>
- </c:choose>
+<header>
+ <nav>
+ <div class="navbar navbar-fixed-top">
+ <div class="container">
+ <a href="<c:url value="/"/>" class="brand">RAVE</a>
+ <ul class="nav pull-right">
+ <li class="divider-vertical"></li>
+ <li>
+ <form class="form-inline" action="<c:url
value="/app/newpassword"/>" method="get">
+ <fmt:message
key="page.login.forgot.password.button" var="requestNewPasswordButtonText"/>
+ <button class="btn btn-info"
id="requestNewPasswordButton" type="submit"
value="${requestNewPasswordButtonText}">${requestNewPasswordButtonText}</button>
+ </form>
+ </li>
+ <li class="divider-vertical"></li>
+ <li>
+ <form class="form-inline" action="<c:url
value="/app/newaccount.jsp"/>" method="get">
+ <fieldset>
+ <fmt:message
key="page.login.createaccount.button" var="createAccountButtonText"/>
+ <button class="btn btn-info"
id="createNewAccountButton" type="submit"
value="${createAccountButtonText}">${createAccountButtonText}</button>
+ </fieldset>
+ </form>
+ </li>
+ <li class="divider-vertical"></li>
+ </ul>
+ </div>
</div>
- </tiles:putAttribute>
-</tiles:insertDefinition>
\ No newline at end of file
+ </nav>
+</header>
+<br><br>
+<div class="container navbar-spacer">
+ <h1><fmt:message key="page.retrieveusername.title"/></h1>
+ <c:choose>
+ <c:when test="${success}">
+
+ <div class="alert-message success">
+ <fmt:message key="page.newpassword.email.sent">
+ <fmt:param>${email}</fmt:param>
+ </fmt:message>
+ </div>
+ <a href="<c:url value="/"/>"><fmt:message
key="page.newpassword.email.sent.login"/></a>
+ </c:when>
+
+ <c:otherwise>
+ <form:form cssClass="form-horizontal well" commandName="user"
action="retrieveusername" method="post">
+ <fieldset>
+ <p><fmt:message key="form.all.fields.required"/></p>
+
+ <p><form:errors cssClass="error"/></p>
+
+ <div class="control-group">
+
+ <label class="control-label"
for="emailField"><fmt:message key="page.general.email"/></label>
+ <div class="controls">
+ <form:input id="emailField" path="email"
required="required" autofocus="autofocus"/>
+ <form:errors path="email" cssClass="error"/>
+ </div>
+ </div>
+ </fieldset>
+ <fieldset>
+ <div class="control-group">
+ <div class="controls">${captchaHtml}</div>
+ </div>
+ </fieldset>
+
+ <fieldset>
+ <fmt:message key="page.login.forgot.username.button"
var="submitButtonText"/>
+ <button class="btn btn-primary" type="submit"
value="${submitButtonText}">${submitButtonText}</button>
+ </fieldset>
+ </form:form>
+ </c:otherwise>
+ </c:choose>
+</div>
\ No newline at end of file