<p dir="auto"><strong><a href="https://jira.spring.io/secure/ViewProfile.jspa?name=puk_999" rel="nofollow">Jon Harper</a></strong> opened <strong><a href="https://jira.spring.io/browse/SPR-6796?redirect=false" rel="nofollow">SPR-6796</a></strong> and commented</p>
<p dir="auto">There needs to be a way to issue a redirect using the String type and to specify that there should be no exposing of the model to the view.</p>
<p dir="auto">One use case:<br>
HandlerInterceptors are commonly used to add data to the model. If the controller supports POST request and does a redirect (which is the most common case) then the data added by the handler interceptor gets appended to the redirect url. This is undesirable. See <a href="http://forum.springsource.org/showthread.php?t=84140" rel="nofollow">http://forum.springsource.org/showthread.php?t=84140</a>.</p>
<p dir="auto">Another use case:<br>
The controller uses a session attribute. The GET inserts into the model (session). The POST accepts a SessionStatus and calls status.setComplete() and then does a redirect using "redirect:view". The model data is still appended to the end of the redirected URL. The programmer now has to accept the ModelMap and call clear() on it. This should really not be required. See <a href="http://forum.springsource.org/showthread.php?p=275392" rel="nofollow">http://forum.springsource.org/showthread.php?p=275392</a>.</p>
<p dir="auto">Therefore there needs to be a very simple way (i.e. view String prefix ) to do a redirect without exposing the model to the view. I see this as the default use case and the case of exposing the model as a less common use case.</p>
<p dir="auto">Jon</p>
<hr>
<p dir="auto"><strong>Affects:</strong> 3.0 GA</p>
<p dir="auto"><strong>Reference URL:</strong> <a href="http://forum.springsource.org/showthread.php?t=84140" rel="nofollow">http://forum.springsource.org/showthread.php?t=84140</a></p>
<p dir="auto"><strong>Issue Links:</strong></p>
<ul dir="auto">
<li><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="398059943" data-permission-text="Title is private" data-url="https://github.com/spring-projects/spring-framework/issues/5995" data-hovercard-type="issue" data-hovercard-url="/spring-projects/spring-framework/issues/5995/hovercard" href="https://github.com/spring-projects/spring-framework/issues/5995">#5995</a> Allow specifying which request attributes are included in RedirectView (<em><strong>"duplicates"</strong></em>)</li>
<li><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="398114183" data-permission-text="Title is private" data-url="https://github.com/spring-projects/spring-framework/issues/13278" data-hovercard-type="issue" data-hovercard-url="/spring-projects/spring-framework/issues/13278/hovercard" href="https://github.com/spring-projects/spring-framework/issues/13278">#13278</a> When a controller method redirect to any url, the framework automatically appends all the model attributes in url query string even if those attributes are stored in session. (<em><strong>"is duplicated by"</strong></em>)</li>
<li><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="398096434" data-permission-text="Title is private" data-url="https://github.com/spring-projects/spring-framework/issues/10625" data-hovercard-type="issue" data-hovercard-url="/spring-projects/spring-framework/issues/10625/hovercard" href="https://github.com/spring-projects/spring-framework/issues/10625">#10625</a> When doing a redirect anything that is not org.springframework.beans.BeanUtils.isSimpleValueType silently gets left off of the redirect query string</li>
</ul>
<p dir="auto">3 votes, 4 watchers</p>
<p dir="auto"><strong><a href="https://jira.spring.io/secure/ViewProfile.jspa?name=ma_kettner" rel="nofollow">Mark Kettner</a></strong> opened <strong><a href="https://jira.spring.io/browse/SPR-2646?redirect=false" rel="nofollow">SPR-2646</a></strong> and commented</p>
<p dir="auto">We have the following source:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="&lt;td style=&quot;width: 185px;&quot; valign=&quot;top&quot;&gt;
	
	1: &lt;spring:bind path=&quot;searchCriteria.fase&quot;&gt;

		&lt;select name=&quot;&lt;c:out value=&quot;${status.expression}&quot;/&gt;&quot;&gt;
			&lt;option value=&quot;&quot; /&gt;&lt;c:forEach items=&quot;${fasen}&quot;
				var=&quot;fase&quot; varStatus=&quot;loopStatus&quot;&gt;

				&lt;c:if test=&quot;${searchCriteria.fase == fase}&quot;&gt;
					&lt;c:set var=&quot;selected&quot; value=&quot;true&quot; /&gt;
				&lt;/c:if&gt;

	2:			&lt;spring:bind path=&quot;searchCriteria.fasen[${loopStatus.index}]&quot;&gt;
					&lt;option value=&quot;&lt;c:out value=&quot;${status.value}&quot;/&gt;&quot;
						&lt;c:if test=&quot;${selected}&quot;&gt;selected=&quot;selected&quot;&lt;/c:if&gt;&gt;&lt;c:out
						value=&quot;${status.value}&quot; /&gt;&lt;/option&gt;
				&lt;/spring:bind&gt;
				&lt;c:remove var=&quot;selected&quot; /&gt;
			&lt;/c:forEach&gt;
		&lt;/select&gt;
	&lt;/spring:bind&gt;&lt;/td&gt;"><pre class="notranslate"><code class="notranslate">&lt;td style="width: 185px;" valign="top"&gt;
	
	1: &lt;spring:bind path="searchCriteria.fase"&gt;

		&lt;select name="&lt;c:out value="${status.expression}"/&gt;"&gt;
			&lt;option value="" /&gt;&lt;c:forEach items="${fasen}"
				var="fase" varStatus="loopStatus"&gt;

				&lt;c:if test="${searchCriteria.fase == fase}"&gt;
					&lt;c:set var="selected" value="true" /&gt;
				&lt;/c:if&gt;

	2:			&lt;spring:bind path="searchCriteria.fasen[${loopStatus.index}]"&gt;
					&lt;option value="&lt;c:out value="${status.value}"/&gt;"
						&lt;c:if test="${selected}"&gt;selected="selected"&lt;/c:if&gt;&gt;&lt;c:out
						value="${status.value}" /&gt;&lt;/option&gt;
				&lt;/spring:bind&gt;
				&lt;c:remove var="selected" /&gt;
			&lt;/c:forEach&gt;
		&lt;/select&gt;
	&lt;/spring:bind&gt;&lt;/td&gt;
</code></pre></div>
<p dir="auto">When we deploy this in the tomcat apache-tomcat-5.5.17 the aplpication works, but when we deploy it on websphere 5.1.10 we getting the next error when the page opgavelist.jsp is being called:</p>
<p dir="auto">Error 500: ServletException in '/pages/opgaveList.jsp': Unable to compile class for JSP An error occurred at line: 58 in the jsp file: /pages/opgaveList.jsp Generated servlet error: C:\java\ibm\WebSphere\AppServer\temp\PP94H199\server1\vvk-product-oo-ear-1.0.1.0\vvk-product-oo-web-1.0.1.0.war\pages_opgaveList.java:543: status is already defined in _jspService(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) org.springframework.web.servlet.support.BindStatus status = null; ^ 1 error</p>
<p dir="auto">After an investigation we found that the websphere has a problem when we nest the tag : spring:bind. In the generated servlet we see that the variable  status = null; has been declared twice.</p>
<p dir="auto">Websphere 5.1.10 generated java:</p>
<p dir="auto">{ // begin scope of tag variables<br>
try {<br>
int _jspx_eval_spring_bind_2 = _jspx_th_spring_bind_2<br>
.doStartTag();<br>
if (_jspx_eval_spring_bind_2 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {<br>
do {<br>
1.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="                                                  org.springframework.web.servlet.support.BindStatus status = null;
                                                  status = (org.springframework.web.servlet.support.BindStatus) pageContext
                                                                            .findAttribute(&quot;status&quot;);
                                                  // end
                                                  // HTML // begin
                                                  // [file=&quot;/pages/opgaveList.jsp&quot;;from=(50,42);to=(52,17)]
                                                  out.write(&quot;\r\n\r\n\t\t\t&lt;select name=\&quot;&quot;);
                                                  // end
                                                  // ##DEBUG## ##TAGLIB## &quot;/pages/opgaveList.jsp&quot;
                                                  // 53,17-&quot;/pages/opgaveList.jsp&quot; 53,54
                                                  // LineMapIndex:43
                                                  /* ------ c:out ------ */
                                                  org.apache.taglibs.standard.tag.el.core.OutTag _jspx_th_c_out_6 = new org.apache.taglibs.standard.tag.el.core.OutTag();
                                                  _jspx_th_c_out_6.setPageContext(pageContext);
                                                  _jspx_th_c_out_6.setParent(_jspx_th_spring_bind_2);
                                                  _jspx_th_c_out_6.setValue(&quot;${status.expression}&quot;);
                                                  _jspxTagObjects.push(_jspx_th_c_out_6);
                                                  int _jspx_eval_c_out_6 = _jspx_th_c_out_6
                                                                            .doStartTag();
                                                  // end
                                                  // ##DEBUG## &quot;/pages/opgaveList.jsp&quot;
                                                  // 53,17-&quot;/pages/opgaveList.jsp&quot; 53,54
                                                  // LineMapIndex:44
                                                  if (_jspx_th_c_out_6.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE)
                                                               return;
                                                  ((javax.servlet.jsp.tagext.Tag) _jspxTagObjects
                                                                            .pop()).release();
                                                  // end
                                                  // HTML // begin
                                                  // [file=&quot;/pages/opgaveList.jsp&quot;;from=(52,54);to=(53,23)]
                                                  out.write(&quot;\&quot;&gt;\r\n\t\t\t\t&lt;option value=\&quot;\&quot; /&gt;&quot;);
                                                  // end
                                                  // ##DEBUG## ##TAGLIB## &quot;/pages/opgaveList.jsp&quot;
                                                  // 54,23-&quot;/pages/opgaveList.jsp&quot; 55,39
                                                  // LineMapIndex:45
                                                  /* ------ c:forEach ------ */
                                                  org.apache.taglibs.standard.tag.el.core.ForEachTag _jspx_th_c_forEach_2 = new org.apache.taglibs.standard.tag.el.core.ForEachTag();
                                                  _jspx_th_c_forEach_2.setPageContext(pageContext);
                                                  _jspx_th_c_forEach_2
                                                                            .setParent(_jspx_th_spring_bind_2);
                                                  _jspx_th_c_forEach_2.setItems(&quot;${fasen}&quot;);
                                                  _jspx_th_c_forEach_2.setVar(&quot;fase&quot;);
                                                  _jspx_th_c_forEach_2.setVarStatus(&quot;loopStatus&quot;);
                                                  try {
                                                               int _jspx_eval_c_forEach_2 = _jspx_th_c_forEach_2
                                                                                         .doStartTag();
                                                               if (_jspx_eval_c_forEach_2 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {
                                                                            do {
                                                                                         // end
                                                                                         // HTML // begin
                                                                                         // [file=&quot;/pages/opgaveList.jsp&quot;;from=(54,39);to=(57,5)]
                                                                                         out.write(&quot;\r\n\r\n\r\n\t\t\t\t\t&quot;);
                                                                                         // end
                                                                                         // ##DEBUG## ##TAGLIB##
                                                                                         // &quot;/pages/opgaveList.jsp&quot;
                                                                                         // 58,5-&quot;/pages/opgaveList.jsp&quot; 58,67
                                                                                         // LineMapIndex:47
                                                                                         /* ------ spring:bind ------ */
                                                                                         org.springframework.web.servlet.tags.BindTag _jspx_th_spring_bind_3 = new org.springframework.web.servlet.tags.BindTag();
                                                                                         _jspx_th_spring_bind_3
                                                                                                                           .setPageContext(pageContext);
                                                                                         _jspx_th_spring_bind_3
                                                                                                                           .setParent(_jspx_th_c_forEach_2);
                                                                                         _jspx_th_spring_bind_3
                                                                                                                           .setPath(&quot;searchCriteria.fasen[${loopStatus.index}]&quot;);
                                                                                         { // begin scope of tag variables
                                                                                                          try {
                                                                                                                           int _jspx_eval_spring_bind_3 = _jspx_th_spring_bind_3
                                                                                                                                                             .doStartTag();
                                                                                                                           if (_jspx_eval_spring_bind_3 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {
                                                                                                                                            do {"><pre class="notranslate"><code class="notranslate">                                                  org.springframework.web.servlet.support.BindStatus status = null;
                                                  status = (org.springframework.web.servlet.support.BindStatus) pageContext
                                                                            .findAttribute("status");
                                                  // end
                                                  // HTML // begin
                                                  // [file="/pages/opgaveList.jsp";from=(50,42);to=(52,17)]
                                                  out.write("\r\n\r\n\t\t\t&lt;select name=\"");
                                                  // end
                                                  // ##DEBUG## ##TAGLIB## "/pages/opgaveList.jsp"
                                                  // 53,17-"/pages/opgaveList.jsp" 53,54
                                                  // LineMapIndex:43
                                                  /* ------ c:out ------ */
                                                  org.apache.taglibs.standard.tag.el.core.OutTag _jspx_th_c_out_6 = new org.apache.taglibs.standard.tag.el.core.OutTag();
                                                  _jspx_th_c_out_6.setPageContext(pageContext);
                                                  _jspx_th_c_out_6.setParent(_jspx_th_spring_bind_2);
                                                  _jspx_th_c_out_6.setValue("${status.expression}");
                                                  _jspxTagObjects.push(_jspx_th_c_out_6);
                                                  int _jspx_eval_c_out_6 = _jspx_th_c_out_6
                                                                            .doStartTag();
                                                  // end
                                                  // ##DEBUG## "/pages/opgaveList.jsp"
                                                  // 53,17-"/pages/opgaveList.jsp" 53,54
                                                  // LineMapIndex:44
                                                  if (_jspx_th_c_out_6.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE)
                                                               return;
                                                  ((javax.servlet.jsp.tagext.Tag) _jspxTagObjects
                                                                            .pop()).release();
                                                  // end
                                                  // HTML // begin
                                                  // [file="/pages/opgaveList.jsp";from=(52,54);to=(53,23)]
                                                  out.write("\"&gt;\r\n\t\t\t\t&lt;option value=\"\" /&gt;");
                                                  // end
                                                  // ##DEBUG## ##TAGLIB## "/pages/opgaveList.jsp"
                                                  // 54,23-"/pages/opgaveList.jsp" 55,39
                                                  // LineMapIndex:45
                                                  /* ------ c:forEach ------ */
                                                  org.apache.taglibs.standard.tag.el.core.ForEachTag _jspx_th_c_forEach_2 = new org.apache.taglibs.standard.tag.el.core.ForEachTag();
                                                  _jspx_th_c_forEach_2.setPageContext(pageContext);
                                                  _jspx_th_c_forEach_2
                                                                            .setParent(_jspx_th_spring_bind_2);
                                                  _jspx_th_c_forEach_2.setItems("${fasen}");
                                                  _jspx_th_c_forEach_2.setVar("fase");
                                                  _jspx_th_c_forEach_2.setVarStatus("loopStatus");
                                                  try {
                                                               int _jspx_eval_c_forEach_2 = _jspx_th_c_forEach_2
                                                                                         .doStartTag();
                                                               if (_jspx_eval_c_forEach_2 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {
                                                                            do {
                                                                                         // end
                                                                                         // HTML // begin
                                                                                         // [file="/pages/opgaveList.jsp";from=(54,39);to=(57,5)]
                                                                                         out.write("\r\n\r\n\r\n\t\t\t\t\t");
                                                                                         // end
                                                                                         // ##DEBUG## ##TAGLIB##
                                                                                         // "/pages/opgaveList.jsp"
                                                                                         // 58,5-"/pages/opgaveList.jsp" 58,67
                                                                                         // LineMapIndex:47
                                                                                         /* ------ spring:bind ------ */
                                                                                         org.springframework.web.servlet.tags.BindTag _jspx_th_spring_bind_3 = new org.springframework.web.servlet.tags.BindTag();
                                                                                         _jspx_th_spring_bind_3
                                                                                                                           .setPageContext(pageContext);
                                                                                         _jspx_th_spring_bind_3
                                                                                                                           .setParent(_jspx_th_c_forEach_2);
                                                                                         _jspx_th_spring_bind_3
                                                                                                                           .setPath("searchCriteria.fasen[${loopStatus.index}]");
                                                                                         { // begin scope of tag variables
                                                                                                          try {
                                                                                                                           int _jspx_eval_spring_bind_3 = _jspx_th_spring_bind_3
                                                                                                                                                             .doStartTag();
                                                                                                                           if (_jspx_eval_spring_bind_3 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {
                                                                                                                                            do {
</code></pre></div>
<ol start="2" dir="auto">
<li></li>
</ol>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="    												org.springframework.web.servlet.support.BindStatus status = null;
    												status = (org.springframework.web.servlet.support.BindStatus) pageContext
    														.findAttribute(&quot;status&quot;);
    												// end
    												// HTML // begin
    												// [file=&quot;/pages/opgaveList.jsp&quot;;from=(57,67);to=(58,21)]
    												out
    														.write(&quot;\r\n\t\t\t\t\t\t&lt;option value=\&quot;&quot;);
   
    												// end
    												// ##DEBUG## ##TAGLIB##
    												// &quot;/pages/opgaveList.jsp&quot;
    												// 59,21-&quot;/pages/opgaveList.jsp&quot;
    												// 59,53 LineMapIndex:48
    												/* ------ c:out ------ */
    												org.apache.taglibs.standard.tag.el.core.OutTag _jspx_th_c_out_7 = new org.apache.taglibs.standard.tag.el.core.OutTag();
    												_jspx_th_c_out_7
    														.setPageContext(pageContext);
    												_jspx_th_c_out_7
    														.setParent(_jspx_th_spring_bind_3);
    												_jspx_th_c_out_7
    														.setValue(&quot;${status.value}&quot;);
    												_jspxTagObjects
    														.push(_jspx_th_c_out_7);
    												int _jspx_eval_c_out_7 = _jspx_th_c_out_7
    														.doStartTag();
    												// end
    												// ##DEBUG##
    												// &quot;/pages/opgaveList.jsp&quot;
    												// 59,21-&quot;/pages/opgaveList.jsp&quot;
    												// 59,53 LineMapIndex:49
    												if (_jspx_th_c_out_7
    														.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE)
    													return;
    												((javax.servlet.jsp.tagext.Tag) _jspxTagObjects
    														.pop())
    														.release();
    												// end
    												// HTML // begin
    												// [file=&quot;/pages/opgaveList.jsp&quot;;from=(58,53);to=(59,7)]
    												out
    														.write(&quot;\&quot;\r\n\t\t\t\t\t\t\t&quot;);
   
    												// end
    												// ##DEBUG## ##TAGLIB##
    												// &quot;/pages/opgaveList.jsp&quot;
    												// 60,7-&quot;/pages/opgaveList.jsp&quot;
    												// 60,51 LineMapIndex:50
    												/* ------ c:if ------ */
    												org.apache.taglibs.standard.tag.el.core.IfTag _jspx_th_c_if_1 = new org.apache.taglibs.standard.tag.el.core.IfTag();
    												_jspx_th_c_if_1
    														.setPageContext(pageContext);
    												_jspx_th_c_if_1
    														.setParent(_jspx_th_spring_bind_3);
    												_jspx_th_c_if_1
    														.setTest(&quot;${searchCriteria.fase == fase}&quot;);
    												_jspxTagObjects
    														.push(_jspx_th_c_if_1);
    												int _jspx_eval_c_if_1 = _jspx_th_c_if_1
    														.doStartTag();
    												if (_jspx_eval_c_if_1 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {
    													do {
    														// end
    														// HTML // begin
    														// [file=&quot;/pages/opgaveList.jsp&quot;;from=(59,51);to=(59,70)]
    														out
    																.write(&quot;selected=\&quot;selected\&quot;&quot;);
   
    														// end
    														// ##DEBUG##
    														// &quot;/pages/opgaveList.jsp&quot;
    														// 60,70-&quot;/pages/opgaveList.jsp&quot;
    														// 60,77
    														// LineMapIndex:51
    													} while (_jspx_th_c_if_1
    															.doAfterBody() == javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN);
    												}
    											-------
    											} while (_jspx_th_spring_bind_3
    													.doAfterBody() == javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN);
    										}
    										if (_jspx_th_spring_bind_3
    												.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE)
    											return;
    									} catch (Throwable _jspx_exception) {
    										_jspx_th_spring_bind_3
    												.doCatch(_jspx_exception);
    									} finally {
    										_jspx_th_spring_bind_3
    												.doFinally();
    										_jspx_th_spring_bind_3
    												.release();
    									}
    								} // end scope of tag variables
    								// end
    								// HTML // begin
    								// [file=&quot;/pages/opgaveList.jsp&quot;;from=(61,19);to=(62,5)]
    								out.write(&quot;\r\n\t\t\t\t\t&quot;);
   
    								// end
    								// ##DEBUG## ##TAGLIB##
    								// &quot;/pages/opgaveList.jsp&quot;
    								// 63,5-&quot;/pages/opgaveList.jsp&quot; 63,32
    								// LineMapIndex:57
    								/* ------ c:remove ------ */
    								org.apache.taglibs.standard.tag.common.core.RemoveTag _jspx_th_c_remove_1 = new org.apache.taglibs.standard.tag.common.core.RemoveTag();
    								_jspx_th_c_remove_1
    										.setPageContext(pageContext);
    								_jspx_th_c_remove_1
    										.setParent(_jspx_th_c_forEach_2);
    								_jspx_th_c_remove_1.setVar(&quot;selected&quot;);
    								_jspxTagObjects
    										.push(_jspx_th_c_remove_1);
    								int _jspx_eval_c_remove_1 = _jspx_th_c_remove_1
    										.doStartTag();
    								// end
    								// ##DEBUG## &quot;/pages/opgaveList.jsp&quot;
    								// 63,5-&quot;/pages/opgaveList.jsp&quot; 63,32
    								// LineMapIndex:58
    								if (_jspx_th_c_remove_1.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE)
    									return;
    								((javax.servlet.jsp.tagext.Tag) _jspxTagObjects
    										.pop()).release();
    								// end
    								// HTML // begin
    								// [file=&quot;/pages/opgaveList.jsp&quot;;from=(62,32);to=(63,4)]
    								out.write(&quot;\r\n\t\t\t\t&quot;);
   
    								// end
    								// ##DEBUG## &quot;/pages/opgaveList.jsp&quot;
    								// 64,4-&quot;/pages/opgaveList.jsp&quot; 64,16
    								// LineMapIndex:59
    							} while (_jspx_th_c_forEach_2.doAfterBody() == javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN);
    						}
    						if (_jspx_th_c_forEach_2.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE)
    							return;
    					} catch (Throwable _jspx_exception) {
    						_jspx_th_c_forEach_2.doCatch(_jspx_exception);
    					} finally {
    						_jspx_th_c_forEach_2.doFinally();
    						_jspx_th_c_forEach_2.release();
    					}
    					// end
    					// HTML // begin
    					// [file=&quot;/pages/opgaveList.jsp&quot;;from=(63,16);to=(65,2)]
    					out.write(&quot;\r\n\t\t\t&lt;/select&gt;\r\n\t\t&quot;);
   
    					// end
    					// ##DEBUG## &quot;/pages/opgaveList.jsp&quot;
    					// 66,2-&quot;/pages/opgaveList.jsp&quot; 66,16
    					// LineMapIndex:60
    				} while (_jspx_th_spring_bind_2.doAfterBody() == javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN);
    			}
    			if (_jspx_th_spring_bind_2.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE)
    				return;
    		} catch (Throwable _jspx_exception) {
    			_jspx_th_spring_bind_2.doCatch(_jspx_exception);
    		} finally {
    			_jspx_th_spring_bind_2.doFinally();
    			_jspx_th_spring_bind_2.release();
    		}
    	} /---
   
    		_jspx_th_spring_message_5.doFinally();
    		_jspx_th_spring_message_5.release();
    	}
    	// end
    	// HTML // begin"><pre class="notranslate"><code class="notranslate">    												org.springframework.web.servlet.support.BindStatus status = null;
    												status = (org.springframework.web.servlet.support.BindStatus) pageContext
    														.findAttribute("status");
    												// end
    												// HTML // begin
    												// [file="/pages/opgaveList.jsp";from=(57,67);to=(58,21)]
    												out
    														.write("\r\n\t\t\t\t\t\t&lt;option value=\"");
   
    												// end
    												// ##DEBUG## ##TAGLIB##
    												// "/pages/opgaveList.jsp"
    												// 59,21-"/pages/opgaveList.jsp"
    												// 59,53 LineMapIndex:48
    												/* ------ c:out ------ */
    												org.apache.taglibs.standard.tag.el.core.OutTag _jspx_th_c_out_7 = new org.apache.taglibs.standard.tag.el.core.OutTag();
    												_jspx_th_c_out_7
    														.setPageContext(pageContext);
    												_jspx_th_c_out_7
    														.setParent(_jspx_th_spring_bind_3);
    												_jspx_th_c_out_7
    														.setValue("${status.value}");
    												_jspxTagObjects
    														.push(_jspx_th_c_out_7);
    												int _jspx_eval_c_out_7 = _jspx_th_c_out_7
    														.doStartTag();
    												// end
    												// ##DEBUG##
    												// "/pages/opgaveList.jsp"
    												// 59,21-"/pages/opgaveList.jsp"
    												// 59,53 LineMapIndex:49
    												if (_jspx_th_c_out_7
    														.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE)
    													return;
    												((javax.servlet.jsp.tagext.Tag) _jspxTagObjects
    														.pop())
    														.release();
    												// end
    												// HTML // begin
    												// [file="/pages/opgaveList.jsp";from=(58,53);to=(59,7)]
    												out
    														.write("\"\r\n\t\t\t\t\t\t\t");
   
    												// end
    												// ##DEBUG## ##TAGLIB##
    												// "/pages/opgaveList.jsp"
    												// 60,7-"/pages/opgaveList.jsp"
    												// 60,51 LineMapIndex:50
    												/* ------ c:if ------ */
    												org.apache.taglibs.standard.tag.el.core.IfTag _jspx_th_c_if_1 = new org.apache.taglibs.standard.tag.el.core.IfTag();
    												_jspx_th_c_if_1
    														.setPageContext(pageContext);
    												_jspx_th_c_if_1
    														.setParent(_jspx_th_spring_bind_3);
    												_jspx_th_c_if_1
    														.setTest("${searchCriteria.fase == fase}");
    												_jspxTagObjects
    														.push(_jspx_th_c_if_1);
    												int _jspx_eval_c_if_1 = _jspx_th_c_if_1
    														.doStartTag();
    												if (_jspx_eval_c_if_1 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {
    													do {
    														// end
    														// HTML // begin
    														// [file="/pages/opgaveList.jsp";from=(59,51);to=(59,70)]
    														out
    																.write("selected=\"selected\"");
   
    														// end
    														// ##DEBUG##
    														// "/pages/opgaveList.jsp"
    														// 60,70-"/pages/opgaveList.jsp"
    														// 60,77
    														// LineMapIndex:51
    													} while (_jspx_th_c_if_1
    															.doAfterBody() == javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN);
    												}
    											-------
    											} while (_jspx_th_spring_bind_3
    													.doAfterBody() == javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN);
    										}
    										if (_jspx_th_spring_bind_3
    												.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE)
    											return;
    									} catch (Throwable _jspx_exception) {
    										_jspx_th_spring_bind_3
    												.doCatch(_jspx_exception);
    									} finally {
    										_jspx_th_spring_bind_3
    												.doFinally();
    										_jspx_th_spring_bind_3
    												.release();
    									}
    								} // end scope of tag variables
    								// end
    								// HTML // begin
    								// [file="/pages/opgaveList.jsp";from=(61,19);to=(62,5)]
    								out.write("\r\n\t\t\t\t\t");
   
    								// end
    								// ##DEBUG## ##TAGLIB##
    								// "/pages/opgaveList.jsp"
    								// 63,5-"/pages/opgaveList.jsp" 63,32
    								// LineMapIndex:57
    								/* ------ c:remove ------ */
    								org.apache.taglibs.standard.tag.common.core.RemoveTag _jspx_th_c_remove_1 = new org.apache.taglibs.standard.tag.common.core.RemoveTag();
    								_jspx_th_c_remove_1
    										.setPageContext(pageContext);
    								_jspx_th_c_remove_1
    										.setParent(_jspx_th_c_forEach_2);
    								_jspx_th_c_remove_1.setVar("selected");
    								_jspxTagObjects
    										.push(_jspx_th_c_remove_1);
    								int _jspx_eval_c_remove_1 = _jspx_th_c_remove_1
    										.doStartTag();
    								// end
    								// ##DEBUG## "/pages/opgaveList.jsp"
    								// 63,5-"/pages/opgaveList.jsp" 63,32
    								// LineMapIndex:58
    								if (_jspx_th_c_remove_1.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE)
    									return;
    								((javax.servlet.jsp.tagext.Tag) _jspxTagObjects
    										.pop()).release();
    								// end
    								// HTML // begin
    								// [file="/pages/opgaveList.jsp";from=(62,32);to=(63,4)]
    								out.write("\r\n\t\t\t\t");
   
    								// end
    								// ##DEBUG## "/pages/opgaveList.jsp"
    								// 64,4-"/pages/opgaveList.jsp" 64,16
    								// LineMapIndex:59
    							} while (_jspx_th_c_forEach_2.doAfterBody() == javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN);
    						}
    						if (_jspx_th_c_forEach_2.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE)
    							return;
    					} catch (Throwable _jspx_exception) {
    						_jspx_th_c_forEach_2.doCatch(_jspx_exception);
    					} finally {
    						_jspx_th_c_forEach_2.doFinally();
    						_jspx_th_c_forEach_2.release();
    					}
    					// end
    					// HTML // begin
    					// [file="/pages/opgaveList.jsp";from=(63,16);to=(65,2)]
    					out.write("\r\n\t\t\t&lt;/select&gt;\r\n\t\t");
   
    					// end
    					// ##DEBUG## "/pages/opgaveList.jsp"
    					// 66,2-"/pages/opgaveList.jsp" 66,16
    					// LineMapIndex:60
    				} while (_jspx_th_spring_bind_2.doAfterBody() == javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN);
    			}
    			if (_jspx_th_spring_bind_2.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE)
    				return;
    		} catch (Throwable _jspx_exception) {
    			_jspx_th_spring_bind_2.doCatch(_jspx_exception);
    		} finally {
    			_jspx_th_spring_bind_2.doFinally();
    			_jspx_th_spring_bind_2.release();
    		}
    	} /---
   
    		_jspx_th_spring_message_5.doFinally();
    		_jspx_th_spring_message_5.release();
    	}
    	// end
    	// HTML // begin
</code></pre></div>
<p dir="auto">Tomcat generate .java:<br>
try {<br>
int _jspx_eval_spring_bind_1 = _jspx_th_spring_bind_1.doStartTag();<br>
if (_jspx_eval_spring_bind_1 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {<br>
1.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="    org.springframework.web.servlet.support.BindStatus status = null;
  status = (org.springframework.web.servlet.support.BindStatus) _jspx_page_context.findAttribute(&quot;status&quot;);
  do {
    out.write(&quot;\r\n&quot;);
    out.write(&quot;\t\t\t&lt;select name=\&quot;&quot;);
    if (_jspx_meth_c_out_3(_jspx_th_spring_bind_1, _jspx_page_context, _jspx_push_body_count_spring_bind_1))
      return;
    out.write(&quot;\&quot;&gt;\r\n&quot;);
    out.write(&quot;\t\t\t\t&lt;option value=\&quot;\&quot; /&gt;&quot;);
    if (_jspx_meth_c_forEach_1(_jspx_th_spring_bind_1, _jspx_page_context, _jspx_push_body_count_spring_bind_1))
      return;
    out.write(&quot;\r\n&quot;);
    out.write(&quot;\t\t\t&lt;/select&gt;\r\n&quot;);
    out.write(&quot;\t\t&quot;);
    int evalDoAfterBody = _jspx_th_spring_bind_1.doAfterBody();
    status = (org.springframework.web.servlet.support.BindStatus) _jspx_page_context.findAttribute(&quot;status&quot;);
    if (evalDoAfterBody != javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN)
      break;
  } while (true);
}
if (_jspx_th_spring_bind_1.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
  return;
}"><pre class="notranslate"><code class="notranslate">    org.springframework.web.servlet.support.BindStatus status = null;
  status = (org.springframework.web.servlet.support.BindStatus) _jspx_page_context.findAttribute("status");
  do {
    out.write("\r\n");
    out.write("\t\t\t&lt;select name=\"");
    if (_jspx_meth_c_out_3(_jspx_th_spring_bind_1, _jspx_page_context, _jspx_push_body_count_spring_bind_1))
      return;
    out.write("\"&gt;\r\n");
    out.write("\t\t\t\t&lt;option value=\"\" /&gt;");
    if (_jspx_meth_c_forEach_1(_jspx_th_spring_bind_1, _jspx_page_context, _jspx_push_body_count_spring_bind_1))
      return;
    out.write("\r\n");
    out.write("\t\t\t&lt;/select&gt;\r\n");
    out.write("\t\t");
    int evalDoAfterBody = _jspx_th_spring_bind_1.doAfterBody();
    status = (org.springframework.web.servlet.support.BindStatus) _jspx_page_context.findAttribute("status");
    if (evalDoAfterBody != javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN)
      break;
  } while (true);
}
if (_jspx_th_spring_bind_1.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
  return;
}
</code></pre></div>
<p dir="auto">} catch (Throwable _jspx_exception) {<br>
while (_jspx_push_body_count_spring_bind_1[0]   - &gt; 0)<br>
out = _jspx_page_context.popBody();<br>
_jspx_th_spring_bind_1.doCatch(_jspx_exception);<br>
} finally {<br>
_jspx_th_spring_bind_1.doFinally();<br>
_jspx_tagPool_spring_bind_path.reuse(_jspx_th_spring_bind_1);<br>
}<br>
out.write("&lt;/td&gt;\r\n");<br>
out.write("\r\n");<br>
out.write("\t\t&lt;td style="width: 185px;" valign="top"&gt;");<br>
if (_jspx_meth_spring_message_4(_jspx_page_context))<br>
return;<br>
out.write("&lt;/td&gt;\r\n");<br>
out.write("\t\t&lt;td style="width: 185px;" valign="top"&gt;\r\n");<br>
out.write("\t\t\r\n");<br>
out.write("\t\t");<br>
//  spring:bind<br>
org.springframework.web.servlet.tags.BindTag _jspx_th_spring_bind_2 = (org.springframework.web.servlet.tags.BindTag) _jspx_tagPool_spring_bind_path.get(org.springframework.web.servlet.tags.BindTag.class);<br>
_jspx_th_spring_bind_2.setPageContext(_jspx_page_context);<br>
_jspx_th_spring_bind_2.setParent(null);<br>
_jspx_th_spring_bind_2.setPath("searchCriteria.fase");<br>
int[] _jspx_push_body_count_spring_bind_2 = new int[] { 0 };<br>
try {<br>
int _jspx_eval_spring_bind_2 = _jspx_th_spring_bind_2.doStartTag();<br>
if (_jspx_eval_spring_bind_2 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {</p>
<ol start="2" dir="auto">
<li></li>
</ol>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="     org.springframework.web.servlet.support.BindStatus status = null;
   status = (org.springframework.web.servlet.support.BindStatus) _jspx_page_context.findAttribute(&quot;status&quot;);

----------------

-------------

   if (_jspx_th_spring_bind_2.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
     return;
   }"><pre class="notranslate"><code class="notranslate">     org.springframework.web.servlet.support.BindStatus status = null;
   status = (org.springframework.web.servlet.support.BindStatus) _jspx_page_context.findAttribute("status");

----------------

-------------

   if (_jspx_th_spring_bind_2.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
     return;
   }
</code></pre></div>
<p dir="auto">} catch (Throwable _jspx_exception) {<br>
while (_jspx_push_body_count_spring_bind_2[0]   - &gt; 0)<br>
out = _jspx_page_context.popBody();<br>
_jspx_th_spring_bind_2.doCatch(_jspx_exception);<br>
} finally {<br>
_jspx_th_spring_bind_2.doFinally();<br>
_jspx_tagPool_spring_bind_path.reuse(_jspx_th_spring_bind_2);<br>
}</p>
<hr>
<p dir="auto"><strong>Affects:</strong> 1.2.8, 2.0 RC4</p>
<p dir="auto"><strong>Attachments:</strong></p>
<ul dir="auto">
<li><a href="https://jira.spring.io/secure/attachment/11998/_opgaveList.java" rel="nofollow">_opgaveList.java</a> (<em>275.19 kB</em>)</li>
<li><a href="https://jira.spring.io/secure/attachment/11997/opgaveList_jsp.java" rel="nofollow">opgaveList_jsp.java</a> (<em>123.08 kB</em>)</li>
<li><a href="https://jira.spring.io/secure/attachment/11996/opgaveList.jsp" rel="nofollow">opgaveList.jsp</a> (<em>6.60 kB</em>)</li>
</ul>