就是点每一栏预订,需要这一栏的所有数据,因为中文用url传参很麻烦请问还有没有其他方法,求教。

解决方案 »

  1.   

    这一行数据不是一个表中的数据吗?可以传这行数据的id,还有用户的id。不就可以确定是哪个用户预定的了
      

  2.   

    <form ...>
    <input id="num" type="text" name="num" value="<%=rs.getString("contents")%>" style="overflow:hidden;border:0px">
    ...
    </form>
      

  3.   

    <a href='servlet?参数=xx&参数=xx'>预定</a>
      

  4.   

    看样子:这个程序怕不是你自己开发的?而且你对数据库操作等比较没概念?rs是ResultSet的缩写。你这个TABLE的数据,显然是来自于数据库中的某个表,而数据库表是有PK(主键)的,可唯一的对应到表中的每一行数据。所以常规传递参数就是:
    <a href="xxxooo.jsp?id=${id}">预订</a>
    如果你能把该表格的JSP源码贴出来,就更容易清晰化这个问题了。
      

  5.   

    不要这样说我啦,这个我后来弄明白了,公司不允许jsp里面有dao层的东西,所以数据都是从action里面返回的,好吧我贴上代码给你看看。
      

  6.   


     <%
                        List<FlightTicket> flightTickets = (List<FlightTicket>) session.getAttribute("ticketList");
                        PageOption pageOption = (PageOption) session.getAttribute("pageOption");
                        if (flightTickets.size() != 0) {
                            for (int i = 1; i <= flightTickets.size() - 1; i++) {
                                if (i % 2 == 1) {
                    %>
                    <form action="test.action" method="post">
                        <tr bgcolor="#ffeeff">
                                <%
                            }
                            else{
                            %>
                        <tr bgcolor="#eeffff">
                            <%
                                }
                            %>
                            <td><%=flightTickets.get(i).getStart()%>
                            </td>
                            <td><%=flightTickets.get(i).getDestination()%>
                            </td>
                            <td><%=flightTickets.get(i).getFlyDate()%>
                            </td>
                            <td><%=flightTickets.get(i).getFlightCompany()%>
                            </td>
                            <td><%=flightTickets.get(i).getSalePrice()%>
                            </td>
                            <td>
                                <input id="start" type="hidden" name="start" value="<%=flightTickets.get(i).getStart()%>">
                                <input type="submit" value="预订">
                            </td>
                        </tr>
                    </form>
                    <%
                            }
                        }
                    %>
      

  7.   

    同意,就是从数据库获取的用户ID,只要传ID过去,然后,另一个页面也直接用get方法获取数据。
      

  8.   


     <%
                        List<FlightTicket> flightTickets = (List<FlightTicket>) session.getAttribute("ticketList");
                        PageOption pageOption = (PageOption) session.getAttribute("pageOption");
                        if (flightTickets.size() != 0) {
                            for (int i = 1; i <= flightTickets.size() - 1; i++) {
                                if (i % 2 == 1) {
                    %>
                    <form action="test.action" method="post">
                        <tr bgcolor="#ffeeff">
                                <%
                            }
                            else{
                            %>
                        <tr bgcolor="#eeffff">
                            <%
                                }
                            %>
                            <td><%=flightTickets.get(i).getStart()%>
                            </td>
                            <td><%=flightTickets.get(i).getDestination()%>
                            </td>
                            <td><%=flightTickets.get(i).getFlyDate()%>
                            </td>
                            <td><%=flightTickets.get(i).getFlightCompany()%>
                            </td>
                            <td><%=flightTickets.get(i).getSalePrice()%>
                            </td>
                            <td>
                                <input id="start" type="hidden" name="start" value="<%=flightTickets.get(i).getStart()%>">
                                <input type="submit" value="预订">
                            </td>
                        </tr>
                    </form>
                    <%
                            }
                        }
                    %>
      

  9.   

    这样还是不行,在test的action里面获取到的start是nullpackage com.mangocity.flight.action;
    import com.opensymphony.xwork2.ActionSupport;/**
     * Created by IntelliJ IDEA.
     * User: Administrator
     * Date: 12-5-20
     * Time: 上午10:29
     */
    public class testAction extends ActionSupport {
        private String start;    public String getStart() {
            return start;
        }    public void setStart(String start) {
            this.start = start;
        }    public String execute(){
            System.out.println(start);
            return SUCCESS;
        }
    }
      

  10.   


    一般是建议用主键来重新访问数据库,因为页面所传递的数据单项,是有可能被篡改的。
    你这里面的这句话:
      <input id="start" type="hidden" name="start" value="<%=flightTickets.get(i).getStart()%>">
    已经实现提交参数了,如果要其它的,就多写几行而已:
      <input id="destination" type="hidden" name="destination" value="<%=flightTickets.get(i).getDestination()%>">其实如果是只提交主键ID,你的提交数据量很小,不建议用这种提交按钮:
      <input type="submit" value="预订">
    直接用<A>标签更方便:
      <a href="test.action?start=<%=flightTickets.get(i).getStart()%>"
      

  11.   

    我说下:
    我不知道你这个链接后到下个页面的数据是又数据库查出来的还是一直传过去的!
    如果是查出来的就直接传个主键ID  到后台查出来给下个页面!
    如果是直接传过去的我知道的有两种方法:1.没中文的时候可以 传多个参数,你这有几个参数就传几个   比如第一个可以传***.jsp?start=guangzhou&end=shanghai.....   都这样传!
    2.(有中文的时候)通过js或jquery把你要传的那一行数据通过json转成String传过去!
      

  12.   

    OK,决定只提交主键了,这样更方便,一开始没有想到,楼下的解决方法要用js,目前我尽量不用js,谢谢大家的回答。对了,有一点比较奇怪,我用10楼的代码将数据提交然后再test.action里面输出start竟然是null,现在买没有弄明白是什么原因
      

  13.   


    使用规则问题,如果用Struts2来处理提交数据的,要用它提供的Tag标签库来生成<INPUT>控件的。10楼给出的,是原始方法,要用 request.getParameter("start"); 才能获得,无法借助Struts来自动值对象化。