t1441332354
2018-05-13 07:41
采纳率: 71.8%
浏览 5.4k
已采纳

jsp页面提交后如何将信息传到另一个jsp页面并将数据存储到数据库

这是第一个页面,由一个下拉列表和一个复选框组成

 <form action="ProcessAis.jsp" method="post" onsubmit="return check(this);">
<table align="center" width="450">
    <tr>
        <td>
            <h2>船舶检测项</h2>
        </td>
    </tr>
    <tr>
        <td><b>船舶名称</b></td>
    </tr>
        <tr>
            <td>
            <select name="dId" id="dId" class="selectpicker bla bla bli" data-live-search="true" size="1">
                <%
                    List<detection> list = (List<detection>)request.getAttribute("list");
                        if(list ==null || list.size() < 1){
                            out.print("没有数据!");
                        }else{
                            for(detection dct :list){
                                %>
                                <option><%=dct.getFI_FisherName()%></option>
                                <%
                            }
                        }

                    %>
            </select>
                <tr>
            <td><input name="AIS" type="checkbox" id="checkid" onchange="changeval()">AIS</td>
        <tr>
                <tr>
            <td><input type="submit" value="提  交"></td>
        </tr>

这是接收页面

processAis.jsp
 <script type="text/javascript">
    function changevla(){
    var check = document.getElementById("checkid");
    if(check.checkid == true){
        document.getElementById("checkid").value = "1";
    }else{
        document.getElementById("checkid").value = "2";
    }
}
</script>
<%
    try{
        Class.forName("**************");
        String url = "*****************";
        String username = "******";
        String password = "*********";
                Connection conn = DriverManager.getConnection(url,username,password);
                String sql = "insert into newship(FI_FisherName,AIS) values(?,?)";
                PreparedStatement ps = conn.prepareStatement(sql);
                ps.setString(1,dct.getFI_FisherName());
                ps.setString(2,document.getElementById("checkid").value);
                int row = ps.executeUpdate();
                if(row >0){
                    out.print("数据添加成功");
                }
                ps.close();
                conn.close();
    }catch(Exception e){
        out.print("数据添加失败!");
        e.printStackTrace();
    }
%>

下来列表的值是从数据库里读取出来的,目的是将下拉列表的值和复选框的选定情况(选定返回一个值为“1,未选定返回一个值为“2)一起提交到第二个页面,然后再将返回的值存储到数据库中。现在的问题是感觉第一个页面的数据无法传到第二个页面,第二个页面传到数据库里的是空数据。想请问应该如何修改才能达到目的,最好是有详细代码说明,万分感谢。

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • uniquewdl 2018-05-14 01:44
    已采纳

    一般如果是提交到Controller中都是直接封装成实体类,你说的提交到另外一个页面,这里我们可以采用一种比较古典的方法
    你的提交页面的需要提交的字段需要设置name属性,然后在form表单中设置为post提交方式,然后在接收页面通过 string str1=(String)request.getParmeters("对应的name属性")这样就可以了。希望采纳,
    这样可能产生乱码,需要在页面上边设置好编码格式。

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 叶子飘零水自流 2018-05-13 07:59

    第一个页面带着数据提交到Controller,然后数据存在model里面,返回到第二个页面,第二个页面获取model里的数据。然后提交到数据库

    评论
    解决 无用
    打赏 举报
  • xcgh 2018-05-13 08:35

    1.第一个页面

    评论
    解决 无用
    打赏 举报
  • xcgh 2018-05-13 08:38

    1.第一个页面

    评论
    解决 无用
    打赏 举报
  • xcgh 2018-05-13 08:42

    1.第一个页面的option里面增加value="<%=dct.getFI_FisherName()%>"
    2.changevla放在第一个页面
    3.processAis.jsp使用request.getParameter("dId")和request.getParameter("AIS")接收参数,即ps.setString(1,request.getParameter("dId"));
    建议好好学习一下基础知识吧

    评论
    解决 无用
    打赏 举报
  • 林哥哥12121 2018-05-13 08:55

    页面传送数据有两种方式:
    1、get
    2、post

    get传送数据的方法是:
    传送数据到B页面
    当然你还可以在form中将method的属性值设置成get
    譬如:

    两种方法传递数据的效果是一样的。

    post方法传递数据:

    到了b页面接收数据的方法【不管是get还是post都是一样的】:
    String type1=request.getParameter("type1");
    String type2=request.getParameter("type2");

    评论
    解决 无用
    打赏 举报
  • qq_36376874 2018-05-14 01:43

    页面传送数据有两种方式:
    1、get
    2、post

    get传送数据的方法是:
    传送数据到B页面
    当然你还可以在form中将method的属性值设置成get
    譬如:

    两种方法传递数据的效果是一样的。

    post方法传递数据:

    到了b页面接收数据的方法【不管是get还是post都是一样的】:
    String type1=request.getParameter("type1");
    String type2=request.getParameter("type2");

    评论
    解决 无用
    打赏 举报
  • djkctt 2018-05-14 08:34

    你这个写法不对的。首先JSP都会提交的action或者servlet,通过bean绑定数据传输,并且你JPS页面写了很多JAVA代码。包括连接数据的配置都写在页面上,<%这种写法,在现实开发中,是不可能用到的。

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题