목차
订单"+(i+1)+"
回复讨论(解决方案)
웹 프론트엔드 HTML 튜토리얼 web开发jsp+java MVC 关于form的一个细节问题_html/css_WEB-ITnose

web开发jsp+java MVC 关于form的一个细节问题_html/css_WEB-ITnose

Jun 24, 2016 am 11:43 AM

这是一个订单展示然后有一个按钮取消订单的
这个链接按钮应该是放在form里
但是因为我的订单是从数据库里调的
不知道有多少个订单
所以form也应该是动态生成的
像我这样写可以 只用了一个form 一个订单
要是把form放到循环里就没用了
就是下面这样
ReserveList里面已经存好了多个订单对象

for(int i=0;i< ReserveList.size();i++) {out.println("<form name='form7'action='/g0103/servlet/servBDReserveCancel?rnum="+ReserveList.get(0).getReserveNum()+"' method='post'><a href='javascript:form"+(i+7)+".submit()' class='btn_buy' >取消</a></form>");}
로그인 후 복사

该怎么办???
想了好久都没有办法。。。求助


完整代码
package serv.BD;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import dao.BD.daoBDReserve;import dao.BD.daoBDReserveDetail;import dao.DT.daoDTRoomType;import vo.BD.voBDReserve;import vo.BD.voBDReserveDetail;import vo.DT.voDTRoomType;@SuppressWarnings("serial")public class servBDReserveShow extends HttpServlet {	public servBDReserveShow() {		super();	}	public void destroy() {		super.destroy(); 	}	public void doPost(HttpServletRequest request, HttpServletResponse response)			throws ServletException, IOException {				response.setContentType("text/html;charset==utf-8");		request.setCharacterEncoding("gb2312");		response.setCharacterEncoding("utf-8");		PrintWriter out = response.getWriter();		ArrayList<voBDReserve> ReserveList=new ArrayList<voBDReserve>();			daoBDReserve daoBDReserve = new daoBDReserve();		daoBDReserveDetail daoBDReserveDetail = new daoBDReserveDetail();        String membernum=request.getParameter("mnum");         ReserveList=daoBDReserve.showReserve(membernum);         if(membernum!=null){	        				out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");			out.println("<HTML>");			out.println("<head>");			out.println("<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />");			out.println("<title>Reserve</title>");			out.println("<link href='../ky/css/style.css' rel='stylesheet' type='text/css' media='all' />");			out.println("<link href='../ky/css/font.css' rel='stylesheet' type='text/css'>");				out.println("<link href='../ky/css/new.css' rel='stylesheet' type='text/css' media='all' />");			out.println("</head>");			out.println("<body>");			out.println("<div class='header'>");			out.println("<div class='header-left-w'>");			out.println("<div class='logo'>");			out.println("<a href='../ky/index.jsp?mnum="+membernum+"'><img  src='../ky/images/logo.png' alt="web开发jsp+java MVC 关于form的一个细节问题_html/css_WEB-ITnose" ></a>");			out.println("</div>");			out.println("<div class='top-nav'>");			out.println("<ul >");			out.println("<li><a href='../ky/index.jsp?mnum="+membernum+"' >主页</a></li>");			out.println("<li><a href='../ky/intro.jsp?mnum="+membernum+"' class='black' > 简介</a></li>");				out.println("<li><form name='form1' action='/g0103/servlet/servDTRoomTypeShow?mnum="+membernum+"' method='post'><a href='javascript:form1.submit()' class='black1'> 预定</a></form></li>");			out.println("<li  class='active' ><form name='form2' action='/g0103/servlet/servBDReserveShow?mnum="+membernum+"' method='post'><a href='javascript:form2.submit()' class='black1'> 预定信息</a></form></li>");			out.println("<li><form name='form3' action='/g0103/servlet/servBEMemberShow?mnum="+membernum+"' method='post'><a href='javascript:form3.submit()' class='black1'> 会员信息</a></form></li>");			out.println("<li><a href='../ky/login.jsp' class='black4' > 登录</a></li>");			out.println("</ul>");			out.println("</div>");					out.println("</div>");					out.println("<div class='header-top'>");			out.println("<div class='logo-in'>");			out.println("<a href='../ky/index.jsp?mnum="+membernum+"'><img  src=../ky/images/logo.png alt="web开发jsp+java MVC 关于form的一个细节问题_html/css_WEB-ITnose" ></a>");			out.println("</div>");			out.println("<div class='top-nav-in'>");			out.println("<span class='menu'><img  src='../ky/images/menu.png' alt="web开发jsp+java MVC 关于form的一个细节问题_html/css_WEB-ITnose" > </span>");			out.println("<ul >");			out.println("<li><a href='../ky/index.jsp?mnum="+membernum+"' >主页</a></li>");			out.println("<li><a href='../ky/intro.jsp?mnum="+membernum+"' class='black' > 简介</a></li>");				out.println("<li><form name='form4' action='/g0103/servlet/servDTRoomTypeShow?mnum="+membernum+"' method='post'><a href='javascript:form4.submit()' class='black1'> 预定</a></form></li>");			out.println("<li class='active' ><form name='form5' action='/g0103/servlet/servBDReserveShow?mnum="+membernum+"' method='post'><a href='javascript:form5.submit()' class='black1'> 预定信息</a></form></li>");			out.println("<li><form name='form6' action='/g0103/servlet/servBEMemberShow?mnum="+membernum+"' method='post'><a href='javascript:form6.submit()' class='black1'> 会员信息</a></form></li>");			out.println("<li><a href='../ky/login.jsp?mnum="+membernum+"' class='black4' > 登录</a></li>");									out.println("<form name='form7'action='/g0103/servlet/servBDReserveCancel?rnum="+ReserveList.get(0).getReserveNum()+"' method='post'></form>");						out.println("</ul>");			out.println("<script>");			out.println("$('span.menu').click(function(){");			out.println("$('.top-nav-in ul').slideToggle(500, function(){");			out.println("});");			out.println("});");			out.println("</script>");			out.println("</div>");			out.println("<div class='clear'> </div>");						out.println("</div>");									for(int i=0;i< ReserveList.size();i++) {				voBDReserve voBDReserve0 = new voBDReserve();				voBDReserve0=ReserveList.get(i);					voBDReserveDetail voBDReserveDetail0 = new voBDReserveDetail();									voBDReserveDetail0=daoBDReserveDetail.showReserveDetail(voBDReserve0.getReserveNum());				voDTRoomType voRoomType=new voDTRoomType();				daoDTRoomType daoRoomType=new daoDTRoomType();				voRoomType=daoRoomType.finDTRoomType(voBDReserveDetail0.getTypeNum());								out.println("<div class='content'>");				out.println("<div class='work'>");				out.println("<div class='htl_room_list_box'>");				out.println("<ul class='htl_room_list'>");							 				out.println("<div class='htl_room_info'>");				out.println("<h4 id="订单-i">订单"+(i+1)+"</h4>");				out.println("<p class='info'><span class='divide'>|</span>订单号:"+voBDReserve0.getReserveNum()+"</p>");				out.println(" <table class='htl_room_tb'>");				out.println("<tbody>");				out.println("<tr>");				out.println("<th></th>");				out.println("<th>订单状态</th>");				out.println("<th>入住时间</th>");				out.println("<th>入住天数</th>");				out.println("<th>房间类型</th>");				out.println("<th>总价<strong></strong></th>");				out.println("<th class='th_room_booking'></th>");				out.println("</tr>");										 				out.println("<tr class='J_needHidePrice'> ");				out.println("<td>明细</span></td>");				out.println("<td>"+voBDReserveDetail0.getResstateNum()+"</td>");				out.println("<td>"+voBDReserveDetail0.getCheckInTime()+"</td>");								out.println("<td>"+voBDReserveDetail0.getStayDays()+"</td>");				out.println("<td>"+voRoomType.getTypeName()+"</span></td>");				out.println("<td>"+voBDReserve0.getFontMoney()+"元</span></td>");				out.println("<td>");				out.println("<a href='javascript:form"+(i+7)+".submit()' class='btn_buy' >取消</a>");				out.println("</td>");				out.println("</tr>");				out.println("</tbody>");				out.println("</table>");				out.println("</div>");								out.println("</ul>"); 				out.println(" ");				out.println("</div>");				out.println("</div>");				out.println("</div>");				out.println("</div>");  						out.println("</body>");				out.println("</html>");			}		} 	}        }
로그인 후 복사


回复讨论(解决方案)

你应该到JavaEE模块里去问这个问题,移步  http://bbs.csdn.net/forums/J2EE。
另外,你都说了是 MVC, view和model分离:
页面HTML内容应该在JSP中写,
在servlet中把 ReserveList对象传过去用EL、JSTL展示即可。

至于你遇到的问题,你可以使用Ajax,而不直接使用Form提交表单的方式;
像一般的列表页,每个行(item)都有个删除的按钮,点击删除按钮,
就通过Ajax把这个item的ID传到服务器进行删除,然后反馈等等。

你把每个订单都用 

包裹起来,无非就是想和服务器(servlet)进行交换,
把该订单的ID传给服务器进行删除;
和服务器进行交换的方式一般有两种:form表单提交、Ajax。
form表单提交一般用在点击“提交”后会跳转页面或刷新页面的情况;
Ajax一般用在不跳转的情况下(整个页面大体不变的情况下)提交数据给服务器。
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

공식 계정 웹 페이지의 캐싱 업데이트에 어려움 : 버전 업데이트 후 사용자 경험에 영향을 미치는 이전 캐시를 피하는 방법은 무엇입니까? 공식 계정 웹 페이지의 캐싱 업데이트에 어려움 : 버전 업데이트 후 사용자 경험에 영향을 미치는 이전 캐시를 피하는 방법은 무엇입니까? Mar 04, 2025 pm 12:32 PM

공식 계정 웹 페이지 업데이트 캐시, 이것은 간단하고 간단하며 냄비를 마시기에 충분히 복잡합니다. 공식 계정 기사를 업데이트하기 위해 열심히 노력했지만 사용자는 여전히 기존 버전을 열었습니까? 이 기사에서는이 뒤에있는 비틀기와 회전을 살펴 보고이 문제를 우아하게 해결하는 방법을 살펴 보겠습니다. 읽은 후에는 다양한 캐싱 문제를 쉽게 처리 할 수있어 사용자가 항상 가장 신선한 콘텐츠를 경험할 수 있습니다. 기본 사항에 대해 먼저 이야기 해 봅시다. 액세스 속도를 향상시키기 위해 브라우저 또는 서버는 일부 정적 리소스 (예 : 그림, CSS, JS) 또는 페이지 컨텐츠를 저장합니다. 다음에 액세스 할 때 다시 다운로드하지 않고도 캐시에서 직접 검색 할 수 있으며 자연스럽게 빠릅니다. 그러나 이것은 또한 양날의 검입니다. 새 버전은 온라인입니다.

HTML5 양식 유효성 검사 속성을 사용하여 사용자 입력을 유효성있게하려면 어떻게합니까? HTML5 양식 유효성 검사 속성을 사용하여 사용자 입력을 유효성있게하려면 어떻게합니까? Mar 17, 2025 pm 12:27 PM

이 기사에서는 브라우저에서 직접 사용자 입력을 검증하기 위해 필요한, Pattern, Min, Max 및 Length 한계와 같은 HTML5 양식 검증 속성을 사용하는 것에 대해 설명합니다.

HTML5의 크로스 브라우저 호환성에 대한 모범 사례는 무엇입니까? HTML5의 크로스 브라우저 호환성에 대한 모범 사례는 무엇입니까? Mar 17, 2025 pm 12:20 PM

기사는 HTML5 크로스 브라우저 호환성을 보장하기위한 모범 사례에 대해 논의하고 기능 감지, 점진적 향상 및 테스트 방법에 중점을 둡니다.

웹 페이지의 PNG 이미지에 뇌졸중 효과를 효율적으로 추가하는 방법은 무엇입니까? 웹 페이지의 PNG 이미지에 뇌졸중 효과를 효율적으로 추가하는 방법은 무엇입니까? Mar 04, 2025 pm 02:39 PM

이 기사는 CSS를 사용한 웹 페이지에 효율적인 PNG 테두리 추가를 보여줍니다. CSS는 JavaScript 또는 라이브러리에 비해 우수한 성능을 제공하며, 미묘하거나 눈에 띄는 효과를 위해 테두리 너비, 스타일 및 색상 조정 방법을 자세히 설명합니다.

& lt; datalist & gt의 목적은 무엇입니까? 요소? & lt; datalist & gt의 목적은 무엇입니까? 요소? Mar 21, 2025 pm 12:33 PM

이 기사는 HTML & LT; Datalist & GT에 대해 논의합니다. 자동 완성 제안을 제공하고, 사용자 경험을 향상시키고, 오류를 줄임으로써 양식을 향상시키는 요소. 문자 수 : 159

html5 & lt; time & gt; 의미 적으로 날짜와 시간을 나타내는 요소? html5 & lt; time & gt; 의미 적으로 날짜와 시간을 나타내는 요소? Mar 12, 2025 pm 04:05 PM

이 기사는 html5 & lt; time & gt; 시맨틱 날짜/시간 표현 요소. 인간이 읽을 수있는 텍스트와 함께 기계 가독성 (ISO 8601 형식)에 대한 DateTime 속성의 중요성을 강조하여 Accessibilit를 향상시킵니다.

& lt; Progress & Gt의 목적은 무엇입니까? 요소? & lt; Progress & Gt의 목적은 무엇입니까? 요소? Mar 21, 2025 pm 12:34 PM

이 기사는 HTML & lt; Progress & Gt에 대해 설명합니다. 요소, 그 목적, 스타일 및 & lt; meter & gt의 차이; 요소. 주요 초점은 & lt; progress & gt; 작업 완료 및 & lt; meter & gt; Stati의 경우

& lt; meter & gt의 목적은 무엇입니까? 요소? & lt; meter & gt의 목적은 무엇입니까? 요소? Mar 21, 2025 pm 12:35 PM

이 기사는 HTML & lt; meter & gt에 대해 설명합니다. 범위 내에 스칼라 또는 분수 값을 표시하는 데 사용되는 요소 및 웹 개발의 일반적인 응용 프로그램. & lt; meter & gt; & lt; Progress & Gt; 그리고 Ex

See all articles