JSP中使用标签报错

ati1990 2017-03-29 03:14:53
页面加载时报错,
错误信息是java.lang.IllegalStateException:Cannot forward after response has been committed异常
将<form:form>这一段注释掉就没问题。
好郁闷,求解什么原因。。。
...全文
682 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
springMVC认为表单一定是要进行回显的,即便是第一次访问,所以会在请求域里面寻找Bean匹配当前的表单值 解决方法:1.在表单所对应的方法上将表单所对应的Bean添加进Map,即使它是空的 2.在form:form头部添加属性:modelAttribute="刚刚添加进map的键",它默认是"command"
ati1990 2017-04-10
  • 打赏
  • 举报
回复
引用 13 楼 zc881124 的回复:
[quote=引用 12 楼 ati1990 的回复:] [quote=引用 10 楼 zc881124 的回复:] [quote=引用 9 楼 ati1990 的回复:] [quote=引用 8 楼 zc881124 的回复:] [quote=引用 7 楼 ati1990 的回复:] [quote=引用 5 楼 zc881124 的回复:] struts2 也可以直接封装成对象传值过去 Spring mvc也可以在后台public String Save(@ModelAttribute("form") User user, Model model) 获取对象,这种写法很少见到。 另你这jsp提交form 没有submit能提交? 还是我不了解这种写法。
<form:button class="btn btn-success " >Save</form:button> 这个会解析成submit的。 请教一下public String Save(@ModelAttribute("form") User user, Model model) 这么写的话 页面上需要做什么,@ModelAttribute("form")这里的form是form的属性吗?比较菜请赐教哦。 还有这个异常是说Cannot forward after response has been committed 。为什么会出这个异常。 [/quote] 页面不用做什么处理 <label>姓名:</label> <input type="text" id="uid" name="uid" tabindex="1"> </p> <p> <label>英文名:</label> <input type="text" id="enuid" name="enuid" tabindex="2"> </p> <p> <label>密码:</label> <input type="text" id="pwd" name="pwd" tabindex="3"> </p> 但是必须要有实体类。 另你说的异常,应该是你的action已经forward跳转了, 但是你还是return 跳转。[/quote] 这个异常发生在页面载入,地址是http://xxxxxx/RFP/account/RFPAccount
//初始化页面
	@RequestMapping(value = "RFPAccount")
    public String list(Model model) {
		Collection<RFPAccount> rfpAccount = rFPAccountService.findAll();
		model.addAttribute("rfpAccount", rfpAccount);
		System.out.println(rfpAccount);	
		//return "demo/RFPHome";
		return "account/RFPAccount";
		
	}
然后载入页面后jsp页面应该没有别的动作了啊,怎么还有forward呢。。。[/quote] 单独看你这部分代码没有问题, 可以的话,贴出配置文件。[/quote] 我看了一下页面加载的情况,
                <div class="modal-footer">
                	<button type="button" class="btn btn-success " onclick="update();">Save</button> 	
                	<button type="button" class="btn btn-danger " onclick="delete2();">Delete</button>
                    <button type="button" class="btn btn-primary " data-dismiss="modal">Cancel</button>
                </div>
               
            </div>
        </div>
    </div>
</div>
<!-- Modal for Perdiam -->

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>System Error!</title>
<link rel="stylesheet"
    href="/RFP/resources/app/css/styles.css">
</head>
<body>
    <div id="wrapper">
        <h1>System Error!</h1>
        <div class="error">
            [e.xx.fw.9001]
            System error occurred!
        </div>
    <br>
    <br>
    <br>
我的页面内容是
                <div class="modal-footer">
                	<button type="button" class="btn btn-success " onclick="update();">Save</button> 	
                	<button type="button" class="btn btn-danger " onclick="delete2();">Delete</button>
                    <button type="button" class="btn btn-primary " data-dismiss="modal">Cancel</button>
                </div>
               
            </div>
        </div>
    </div>
</div>
<!-- Modal for Perdiam -->

</form:form>

<script>
可以看到在</form:form>这里就报了这个Cannot forward after response has been committed异常 抱歉,您还需要看哪里的配置文件,页面报错信息是Filter捕获的500异常。[/quote] Spring mvc 的配置文件发下,另在哪调用 list, 并在哪显示view.[/quote] 问题已经解决了。 肯能是因为页面用了两个modal的原因, 合并成一个modal就好了。 感谢各位的帮助。!
110成成 2017-03-30
  • 打赏
  • 举报
回复
引用 12 楼 ati1990 的回复:
[quote=引用 10 楼 zc881124 的回复:] [quote=引用 9 楼 ati1990 的回复:] [quote=引用 8 楼 zc881124 的回复:] [quote=引用 7 楼 ati1990 的回复:] [quote=引用 5 楼 zc881124 的回复:] struts2 也可以直接封装成对象传值过去 Spring mvc也可以在后台public String Save(@ModelAttribute("form") User user, Model model) 获取对象,这种写法很少见到。 另你这jsp提交form 没有submit能提交? 还是我不了解这种写法。
<form:button class="btn btn-success " >Save</form:button> 这个会解析成submit的。 请教一下public String Save(@ModelAttribute("form") User user, Model model) 这么写的话 页面上需要做什么,@ModelAttribute("form")这里的form是form的属性吗?比较菜请赐教哦。 还有这个异常是说Cannot forward after response has been committed 。为什么会出这个异常。 [/quote] 页面不用做什么处理 <label>姓名:</label> <input type="text" id="uid" name="uid" tabindex="1"> </p> <p> <label>英文名:</label> <input type="text" id="enuid" name="enuid" tabindex="2"> </p> <p> <label>密码:</label> <input type="text" id="pwd" name="pwd" tabindex="3"> </p> 但是必须要有实体类。 另你说的异常,应该是你的action已经forward跳转了, 但是你还是return 跳转。[/quote] 这个异常发生在页面载入,地址是http://xxxxxx/RFP/account/RFPAccount
//初始化页面
	@RequestMapping(value = "RFPAccount")
    public String list(Model model) {
		Collection<RFPAccount> rfpAccount = rFPAccountService.findAll();
		model.addAttribute("rfpAccount", rfpAccount);
		System.out.println(rfpAccount);	
		//return "demo/RFPHome";
		return "account/RFPAccount";
		
	}
然后载入页面后jsp页面应该没有别的动作了啊,怎么还有forward呢。。。[/quote] 单独看你这部分代码没有问题, 可以的话,贴出配置文件。[/quote] 我看了一下页面加载的情况,
                <div class="modal-footer">
                	<button type="button" class="btn btn-success " onclick="update();">Save</button> 	
                	<button type="button" class="btn btn-danger " onclick="delete2();">Delete</button>
                    <button type="button" class="btn btn-primary " data-dismiss="modal">Cancel</button>
                </div>
               
            </div>
        </div>
    </div>
</div>
<!-- Modal for Perdiam -->

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>System Error!</title>
<link rel="stylesheet"
    href="/RFP/resources/app/css/styles.css">
</head>
<body>
    <div id="wrapper">
        <h1>System Error!</h1>
        <div class="error">
            [e.xx.fw.9001]
            System error occurred!
        </div>
    <br>
    <br>
    <br>
我的页面内容是
                <div class="modal-footer">
                	<button type="button" class="btn btn-success " onclick="update();">Save</button> 	
                	<button type="button" class="btn btn-danger " onclick="delete2();">Delete</button>
                    <button type="button" class="btn btn-primary " data-dismiss="modal">Cancel</button>
                </div>
               
            </div>
        </div>
    </div>
</div>
<!-- Modal for Perdiam -->

</form:form>

<script>
可以看到在</form:form>这里就报了这个Cannot forward after response has been committed异常 抱歉,您还需要看哪里的配置文件,页面报错信息是Filter捕获的500异常。[/quote] Spring mvc 的配置文件发下,另在哪调用 list, 并在哪显示view.
ati1990 2017-03-30
  • 打赏
  • 举报
回复
引用 10 楼 zc881124 的回复:
[quote=引用 9 楼 ati1990 的回复:] [quote=引用 8 楼 zc881124 的回复:] [quote=引用 7 楼 ati1990 的回复:] [quote=引用 5 楼 zc881124 的回复:] struts2 也可以直接封装成对象传值过去 Spring mvc也可以在后台public String Save(@ModelAttribute("form") User user, Model model) 获取对象,这种写法很少见到。 另你这jsp提交form 没有submit能提交? 还是我不了解这种写法。
<form:button class="btn btn-success " >Save</form:button> 这个会解析成submit的。 请教一下public String Save(@ModelAttribute("form") User user, Model model) 这么写的话 页面上需要做什么,@ModelAttribute("form")这里的form是form的属性吗?比较菜请赐教哦。 还有这个异常是说Cannot forward after response has been committed 。为什么会出这个异常。 [/quote] 页面不用做什么处理 <label>姓名:</label> <input type="text" id="uid" name="uid" tabindex="1"> </p> <p> <label>英文名:</label> <input type="text" id="enuid" name="enuid" tabindex="2"> </p> <p> <label>密码:</label> <input type="text" id="pwd" name="pwd" tabindex="3"> </p> 但是必须要有实体类。 另你说的异常,应该是你的action已经forward跳转了, 但是你还是return 跳转。[/quote] 这个异常发生在页面载入,地址是http://xxxxxx/RFP/account/RFPAccount
//初始化页面
	@RequestMapping(value = "RFPAccount")
    public String list(Model model) {
		Collection<RFPAccount> rfpAccount = rFPAccountService.findAll();
		model.addAttribute("rfpAccount", rfpAccount);
		System.out.println(rfpAccount);	
		//return "demo/RFPHome";
		return "account/RFPAccount";
		
	}
然后载入页面后jsp页面应该没有别的动作了啊,怎么还有forward呢。。。[/quote] 单独看你这部分代码没有问题, 可以的话,贴出配置文件。[/quote] 我看了一下页面加载的情况,
                <div class="modal-footer">
                	<button type="button" class="btn btn-success " onclick="update();">Save</button> 	
                	<button type="button" class="btn btn-danger " onclick="delete2();">Delete</button>
                    <button type="button" class="btn btn-primary " data-dismiss="modal">Cancel</button>
                </div>
               
            </div>
        </div>
    </div>
</div>
<!-- Modal for Perdiam -->

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>System Error!</title>
<link rel="stylesheet"
    href="/RFP/resources/app/css/styles.css">
</head>
<body>
    <div id="wrapper">
        <h1>System Error!</h1>
        <div class="error">
            [e.xx.fw.9001]
            System error occurred!
        </div>
    <br>
    <br>
    <br>
我的页面内容是
                <div class="modal-footer">
                	<button type="button" class="btn btn-success " onclick="update();">Save</button> 	
                	<button type="button" class="btn btn-danger " onclick="delete2();">Delete</button>
                    <button type="button" class="btn btn-primary " data-dismiss="modal">Cancel</button>
                </div>
               
            </div>
        </div>
    </div>
</div>
<!-- Modal for Perdiam -->

</form:form>

<script>
可以看到在</form:form>这里就报了这个Cannot forward after response has been committed异常 抱歉,您还需要看哪里的配置文件,页面报错信息是Filter捕获的500异常。
vkqiang 2017-03-29
  • 打赏
  • 举报
回复
过来学习一下了
110成成 2017-03-29
  • 打赏
  • 举报
回复
引用 9 楼 ati1990 的回复:
[quote=引用 8 楼 zc881124 的回复:] [quote=引用 7 楼 ati1990 的回复:] [quote=引用 5 楼 zc881124 的回复:] struts2 也可以直接封装成对象传值过去 Spring mvc也可以在后台public String Save(@ModelAttribute("form") User user, Model model) 获取对象,这种写法很少见到。 另你这jsp提交form 没有submit能提交? 还是我不了解这种写法。
<form:button class="btn btn-success " >Save</form:button> 这个会解析成submit的。 请教一下public String Save(@ModelAttribute("form") User user, Model model) 这么写的话 页面上需要做什么,@ModelAttribute("form")这里的form是form的属性吗?比较菜请赐教哦。 还有这个异常是说Cannot forward after response has been committed 。为什么会出这个异常。 [/quote] 页面不用做什么处理 <label>姓名:</label> <input type="text" id="uid" name="uid" tabindex="1"> </p> <p> <label>英文名:</label> <input type="text" id="enuid" name="enuid" tabindex="2"> </p> <p> <label>密码:</label> <input type="text" id="pwd" name="pwd" tabindex="3"> </p> 但是必须要有实体类。 另你说的异常,应该是你的action已经forward跳转了, 但是你还是return 跳转。[/quote] 这个异常发生在页面载入,地址是http://xxxxxx/RFP/account/RFPAccount
//初始化页面
	@RequestMapping(value = "RFPAccount")
    public String list(Model model) {
		Collection<RFPAccount> rfpAccount = rFPAccountService.findAll();
		model.addAttribute("rfpAccount", rfpAccount);
		System.out.println(rfpAccount);	
		//return "demo/RFPHome";
		return "account/RFPAccount";
		
	}
然后载入页面后jsp页面应该没有别的动作了啊,怎么还有forward呢。。。[/quote] 单独看你这部分代码没有问题, 可以的话,贴出配置文件。
ati1990 2017-03-29
  • 打赏
  • 举报
回复
引用 8 楼 zc881124 的回复:
[quote=引用 7 楼 ati1990 的回复:] [quote=引用 5 楼 zc881124 的回复:] struts2 也可以直接封装成对象传值过去 Spring mvc也可以在后台public String Save(@ModelAttribute("form") User user, Model model) 获取对象,这种写法很少见到。 另你这jsp提交form 没有submit能提交? 还是我不了解这种写法。
<form:button class="btn btn-success " >Save</form:button> 这个会解析成submit的。 请教一下public String Save(@ModelAttribute("form") User user, Model model) 这么写的话 页面上需要做什么,@ModelAttribute("form")这里的form是form的属性吗?比较菜请赐教哦。 还有这个异常是说Cannot forward after response has been committed 。为什么会出这个异常。 [/quote] 页面不用做什么处理 <label>姓名:</label> <input type="text" id="uid" name="uid" tabindex="1"> </p> <p> <label>英文名:</label> <input type="text" id="enuid" name="enuid" tabindex="2"> </p> <p> <label>密码:</label> <input type="text" id="pwd" name="pwd" tabindex="3"> </p> 但是必须要有实体类。 另你说的异常,应该是你的action已经forward跳转了, 但是你还是return 跳转。[/quote] 这个异常发生在页面载入,地址是http://xxxxxx/RFP/account/RFPAccount
//初始化页面
	@RequestMapping(value = "RFPAccount")
    public String list(Model model) {
		Collection<RFPAccount> rfpAccount = rFPAccountService.findAll();
		model.addAttribute("rfpAccount", rfpAccount);
		System.out.println(rfpAccount);	
		//return "demo/RFPHome";
		return "account/RFPAccount";
		
	}
然后载入页面后jsp页面应该没有别的动作了啊,怎么还有forward呢。。。
110成成 2017-03-29
  • 打赏
  • 举报
回复
引用 7 楼 ati1990 的回复:
[quote=引用 5 楼 zc881124 的回复:] struts2 也可以直接封装成对象传值过去 Spring mvc也可以在后台public String Save(@ModelAttribute("form") User user, Model model) 获取对象,这种写法很少见到。 另你这jsp提交form 没有submit能提交? 还是我不了解这种写法。
<form:button class="btn btn-success " >Save</form:button> 这个会解析成submit的。 请教一下public String Save(@ModelAttribute("form") User user, Model model) 这么写的话 页面上需要做什么,@ModelAttribute("form")这里的form是form的属性吗?比较菜请赐教哦。 还有这个异常是说Cannot forward after response has been committed 。为什么会出这个异常。 [/quote] 页面不用做什么处理 <label>姓名:</label> <input type="text" id="uid" name="uid" tabindex="1"> </p> <p> <label>英文名:</label> <input type="text" id="enuid" name="enuid" tabindex="2"> </p> <p> <label>密码:</label> <input type="text" id="pwd" name="pwd" tabindex="3"> </p> 但是必须要有实体类。 另你说的异常,应该是你的action已经forward跳转了, 但是你还是return 跳转。
ati1990 2017-03-29
  • 打赏
  • 举报
回复
引用 5 楼 zc881124 的回复:
struts2 也可以直接封装成对象传值过去 Spring mvc也可以在后台public String Save(@ModelAttribute("form") User user, Model model) 获取对象,这种写法很少见到。 另你这jsp提交form 没有submit能提交? 还是我不了解这种写法。
<form:button class="btn btn-success " >Save</form:button> 这个会解析成submit的。 请教一下public String Save(@ModelAttribute("form") User user, Model model) 这么写的话 页面上需要做什么,@ModelAttribute("form")这里的form是form的属性吗?比较菜请赐教哦。 还有这个异常是说Cannot forward after response has been committed 。为什么会出这个异常。
  • 打赏
  • 举报
回复
估计是自定义写的标签吧。
110成成 2017-03-29
  • 打赏
  • 举报
回复
struts2 也可以直接封装成对象传值过去 Spring mvc也可以在后台public String Save(@ModelAttribute("form") User user, Model model) 获取对象,这种写法很少见到。 另你这jsp提交form 没有submit能提交? 还是我不了解这种写法。
ati1990 2017-03-29
  • 打赏
  • 举报
回复
引用 3 楼 zwc308054005 的回复:
为什么用<form:form> 而不是直接<form></form>
公司的项目框架要求的,有一个modelAttribute="RFPAccountForm" 这玩意儿把页面数据直接做成对象传回去。。 能看出来啥问题吗。?这段注释掉,刷新页面,然后再取消注释页面也是正常的。
  • 打赏
  • 举报
回复
为什么用<form:form> 而不是直接<form></form>
ati1990 2017-03-29
  • 打赏
  • 举报
回复
抱歉代码在这:
<form:form action="${pageContext.request.contextPath}/account/add"  method="post"  modelAttribute="RFPAccountForm">
<div class="modal fade" id="addModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">

    <div class="vertical-alignment-helper">
        <div class="modal-dialog modal-md">
            <div class="modal-content" >
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span>

                    </button>
                     <h4 class="modal-title" id="myModalLabel">Add RFP Account</h4>
				     <div class="alert alert-warning" id="msg">
				        <a href="#" class="close" data-dismiss="alert">×</a>
				        <strong></strong>
				     </div>
                </div>
                <div class="modal-body" id="confirmText">
					<div class="row" style="margin-bottom: 5px; margin-left: 10px;">
  						<div class="col-xs-2 col-sm-4 col-md-3 text-right">
     						<label style="padding-top: 8px;"> <b>Description No : </b></label>

  						</div>
  						<div class="col-xs-4 col-sm-4 col-md-3">
  							<form:input path="descriptionNo" size="2" class="form-control" id="getid"></form:input>
  						</div>
  						<div class="col-xs-4 col-sm-4 col-md-6">
  						</div>
					</div>                  
                
					<div class="row" style="margin-bottom: 5px; margin-left: 10px;">
  						<div class="col-xs-2 col-sm-4 col-md-3 text-right">
     						<label style="padding-top: 8px;"> <b>ACCT Code : </b></label>

  						</div>
  						<div class="col-xs-4 col-sm-4 col-md-3">
  							<form:input path="acctCode" size="4" class="form-control" id="getid"></form:input>
  						</div>
  						<div class="col-xs-4 col-sm-4 col-md-6">
  						</div>
					</div>
					<div class="row" style="margin-bottom: 5px; margin-left: 10px;">
  						<div class="col-xs-2 col-sm-4 col-md-3 text-right">
     						<label style="padding-top: 8px;"> <b>Description : </b></label>
     						
  						</div>
  						<div class="col-xs-4 col-sm-4 col-md-9">
  							<form:input path="description" size="10" class="form-control" id="getid"></form:input>
  						</div>
					</div>                

				</div>
                <div class="modal-footer">
                	<form:button class="btn btn-success " >Save</form:button>
                    <button type="button" class="btn btn-primary " data-dismiss="modal">Cancel</button>
                </div>
            </div>
        </div>
    </div>
</div>
</form:form>
错误信息为: Caused by: java.lang.IllegalStateException: レスポンスをコミットした後でセッションを作成できません at org.apache.catalina.connector.Request.doGetSession(Request.java:2953) ~[catalina.jar:na] at org.apache.catalina.connector.Request.getSession(Request.java:2367) ~[catalina.jar:na] at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:896) ~[catalina.jar:na] at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:231) ~[servlet-api.jar:na] at org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:592) ~[catalina.jar:na] at org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:537) ~[catalina.jar:na] at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:240) ~[servlet-api.jar:na] at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:240) ~[servlet-api.jar:na] at org.springframework.security.web.csrf.HttpSessionCsrfTokenRepository.saveToken(HttpSessionCsrfTokenRepository.java:64) ~[spring-security-web-4.0.3.RELEASE.jar:4.0.3.RELEASE] at org.springframework.security.web.csrf.CsrfFilter$SaveOnAccessCsrfToken.saveTokenIfNecessary(CsrfFilter.java:227) ~[spring-security-web-4.0.3.RELEASE.jar:4.0.3.RELEASE] at org.springframework.security.web.csrf.CsrfFilter$SaveOnAccessCsrfToken.getToken(CsrfFilter.java:185) ~[spring-security-web-4.0.3.RELEASE.jar:4.0.3.RELEASE] at org.springframework.security.web.servlet.support.csrf.CsrfRequestDataValueProcessor.getExtraHiddenFields(CsrfRequestDataValueProcessor.java:71) ~[spring-security-web-4.0.3.RELEASE.jar:4.0.3.RELEASE] at org.terasoluna.gfw.web.mvc.support.CompositeRequestDataValueProcessor.getExtraHiddenFields(CompositeRequestDataValueProcessor.java:155) ~[terasoluna-gfw-web-5.1.1.RELEASE.jar:5.1.1.RELEASE] at org.springframework.web.servlet.tags.form.FormTag.doEndTag(FormTag.java:509) ~[spring-webmvc-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.apache.jsp.WEB_002dINF.views.account.RFPAccount_jsp._jspx_meth_form_005fform_005f0(RFPAccount_jsp.java:858) ~[na:na] at org.apache.jsp.WEB_002dINF.views.account.RFPAccount_jsp._jspService(RFPAccount_jsp.java:530) ~[na:na] at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) ~[jasper.jar:8.5.6-dev] at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) ~[servlet-api.jar:na] at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443) ~[jasper.jar:8.5.6-dev] ... 102 common frames omitted
TakeTheSun 2017-03-29
  • 打赏
  • 举报
回复
不贴代码看个蛋

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧