|
|
|
@ -1,5 +1,5 @@ |
|
|
|
|
/* |
|
|
|
|
* Copyright 2002-2016 the original author or authors. |
|
|
|
|
* Copyright 2002-2018 the original author or authors. |
|
|
|
|
* |
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
@ -28,6 +28,7 @@ import javax.servlet.jsp.PageContext; |
|
|
|
|
import org.springframework.beans.PropertyAccessor; |
|
|
|
|
import org.springframework.core.Conventions; |
|
|
|
|
import org.springframework.http.HttpMethod; |
|
|
|
|
import org.springframework.util.CollectionUtils; |
|
|
|
|
import org.springframework.util.ObjectUtils; |
|
|
|
|
import org.springframework.util.StringUtils; |
|
|
|
|
import org.springframework.web.servlet.support.RequestDataValueProcessor; |
|
|
|
@ -666,7 +667,7 @@ public class FormTag extends AbstractHtmlElementTag { |
|
|
|
|
public int doEndTag() throws JspException { |
|
|
|
|
RequestDataValueProcessor processor = getRequestContext().getRequestDataValueProcessor(); |
|
|
|
|
ServletRequest request = this.pageContext.getRequest(); |
|
|
|
|
if ((processor != null) && (request instanceof HttpServletRequest)) { |
|
|
|
|
if (processor != null && request instanceof HttpServletRequest) { |
|
|
|
|
writeHiddenFields(processor.getExtraHiddenFields((HttpServletRequest) request)); |
|
|
|
|
} |
|
|
|
|
this.tagWriter.endTag(); |
|
|
|
@ -677,7 +678,7 @@ public class FormTag extends AbstractHtmlElementTag { |
|
|
|
|
* Writes the given values as hidden fields. |
|
|
|
|
*/ |
|
|
|
|
private void writeHiddenFields(Map<String, String> hiddenFields) throws JspException { |
|
|
|
|
if (hiddenFields != null) { |
|
|
|
|
if (!CollectionUtils.isEmpty(hiddenFields)) { |
|
|
|
|
this.tagWriter.appendValue("<div>\n"); |
|
|
|
|
for (String name : hiddenFields.keySet()) { |
|
|
|
|
this.tagWriter.appendValue("<input type=\"hidden\" "); |
|
|
|
@ -694,6 +695,7 @@ public class FormTag extends AbstractHtmlElementTag { |
|
|
|
|
@Override |
|
|
|
|
public void doFinally() { |
|
|
|
|
super.doFinally(); |
|
|
|
|
|
|
|
|
|
this.pageContext.removeAttribute(MODEL_ATTRIBUTE_VARIABLE_NAME, PageContext.REQUEST_SCOPE); |
|
|
|
|
if (this.previousNestedPath != null) { |
|
|
|
|
// Expose previous nestedPath value.
|
|
|
|
|