Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java/JSP对表单结果重新排序_Java_Html_Jsp - Fatal编程技术网

使用Java/JSP对表单结果重新排序

使用Java/JSP对表单结果重新排序,java,html,jsp,Java,Html,Jsp,我对Java和JSP缺乏经验。我创建了一个表单,它按照预期的方式工作,但我想从中获得一些乐趣,并让它在表单提交后重新排序结果。我将包括一些图片来说明我的意思。我很难找到我想要的,也不知道从哪里开始。任何帮助都将不胜感激 以下是表格页: 以下是结果: 下面是我希望结果的样子(注意“last”从2变为3,“middle”从3变为5,“item”从4变为2,“address”从5变为4): Java文件 import java.io.*; import javax.servlet.*; impo

我对Java和JSP缺乏经验。我创建了一个表单,它按照预期的方式工作,但我想从中获得一些乐趣,并让它在表单提交后重新排序结果。我将包括一些图片来说明我的意思。我很难找到我想要的,也不知道从哪里开始。任何帮助都将不胜感激

以下是表格页:

以下是结果:

下面是我希望结果的样子(注意“last”从2变为3,“middle”从3变为5,“item”从4变为2,“address”从5变为4):

Java文件

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;

public class ShowParameters extends HttpServlet {

    private static final long serialVersionUID = 1L;

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {


        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        String docType =
                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
                "Transitional//EN\">\n";
        String title = "Reading All Request Parameters";

        out.println(docType +
                "<HTML>\n" +
                "<HEAD><TITLE>" + title + "</TITLE></HEAD>\n" +
                "<BODY BGCOLOR=\"#FDF5E6\">\n" +
                "<H1 ALIGN=CENTER>" + title + "</H1>\n" +
                "<TABLE BORDER=1 ALIGN=CENTER>\n" +
                "<TR BGCOLOR=\"#FFAD00\">\n" +
                "<TH>Parameter Name<TH>Parameter Value(s)");

        Enumeration paramNames = request.getParameterNames();
        while(paramNames.hasMoreElements()) {
            String paramName = (String)paramNames.nextElement();
            out.print("<TR><TD>" + paramName + "\n<TD>");
            String[] paramValues =
                    request.getParameterValues(paramName);
            if (paramValues.length == 1) {
                String paramValue = paramValues[0];
                if (paramValue.length() == 0)
                    out.println("<I>No Value</I>");
                else
                    out.println(paramValue);
            } else {
                out.println("<UL>");
                for(int i=0; i<paramValues.length; i++) {
                    out.println("<LI>" + paramValues[i]);
                }
                out.println("</UL>");
            }
        }

        out.println("</TABLE>\n</BODY></HTML>");
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        System.out.println("STOP1\n");
        doGet(request, response);
    }

}
import java.io.*;
导入javax.servlet.*;
导入javax.servlet.http.*;
导入java.util.*;
公共类ShowParameters扩展了HttpServlet{
私有静态最终长serialVersionUID=1L;
public void doGet(HttpServletRequest请求、HttpServletResponse响应)
抛出ServletException、IOException{
response.setContentType(“text/html”);
PrintWriter out=response.getWriter();
字符串docType=
“\n”;
String title=“读取所有请求参数”;
out.println(docType+
“\n”+
“”+标题+“\n”+
“\n”+
“”+标题+“\n”+
“\n”+
“\n”+
“参数名称参数值”;
枚举paramNames=request.getParameterNames();
while(paramNames.hasMoreElements()){
字符串paramName=(字符串)paramNames.nextElement();
out.print(“+paramName+”\n”);
字符串[]参数值=
request.getParameterValues(paramName);
如果(paramValues.length==1){
字符串paramValue=paramValues[0];
if(paramValue.length()==0)
out.println(“无价值”);
其他的
out.println(参数值);
}否则{
out.println(“
    ”);
    对于(int i=0;i而不是通过
    请求获取参数的枚举。getParameterNames
    您可以拥有一个字符串数组,其中包含您期望的所有参数名,按您想要的顺序排列,您可以像这样循环该数组:

    String[] paramNames = { "item", "last", "first" };
    for(int i=0; i<paramNames.length; i++)
    {
         out.print("<tr>");
         out.print("<td>" + paramNames[i] + "</td>");
         out.print("<td>");
         String[] paramValues = request.getParameterValues(paramNames[i]);
         ...
         ...
         out.print("</td>");
         out.print("</tr>");
    }
    
    String[]paramNames={“item”、“last”、“first”};
    
    对于(inti=0;i,不要在servlet中创建html,而是创建一个类来保存表单输入信息,如:

    public class Person {
    
        private String firstName;
        private String midlleName;
        private String lastName;
        private String item;
        private String address;
        private String cardType;
        private String cardNumber;
    
        //getters and setters
    
    }
    
    在servlet中,创建Person类的实例并设置值,然后简单地将Person实例添加到请求并转发到jsp

       Person person = new Person();
       person.setFirstName(request.getParameter("first"));
       //set other person values here
       request.setAttribute("person", person);
       request.getRequestDispatcher("filename.jsp").forward(request, response);
    
    在jsp中显示如下内容:

    <table border="2">
        <tr bgcolor="#FFAD00">
            <th>Parameter Name</th>
            <th>Parameter Value(s)</th>     
        </tr>
        <tr>
            <td>first</td><td>${person.firstName}</td>
        </tr>
        <tr>
            <td>item</td><td>${person.item}</td>
        </tr>
        <tr>
            <td>last</td><td>${person.midlleName}</td>
        </tr>   
        <tr>
            <td>address</td><td>${person.address}</td>
        </tr>
        <tr>
            <td>middle</td><td>${person.lastName}</td>
        </tr>
        <tr>
            <td>cardType</td><td>${person.cardType}</td>
        </tr>
        <tr>
            <td>cardNum</td><td>${person.cardNumber}</td>
        </tr>
    </table>
    
    
    参数名
    参数值
    第一${person.firstName}
    项目${person.item}
    last${person.midleName}
    地址${person.address}
    中间${person.lastName}
    cardType${person.cardType}
    cardNum${person.cardNumber}
    
    好处:

    • 在html中,可以根据需要轻松更改顺序。(只需移动
      元素)
    • 不需要回路
    • 遵循面向对象编程(OOP)的编程风格

    那么我应该删除哪一段代码?只删除“Enumeration paramNames=request.getParameterNames();”这一行?或者我应该删除紧跟在这一行之后的while循环吗?另外,我应该用什么替换“…”的两行吗?
    <table border="2">
        <tr bgcolor="#FFAD00">
            <th>Parameter Name</th>
            <th>Parameter Value(s)</th>     
        </tr>
        <tr>
            <td>first</td><td>${person.firstName}</td>
        </tr>
        <tr>
            <td>item</td><td>${person.item}</td>
        </tr>
        <tr>
            <td>last</td><td>${person.midlleName}</td>
        </tr>   
        <tr>
            <td>address</td><td>${person.address}</td>
        </tr>
        <tr>
            <td>middle</td><td>${person.lastName}</td>
        </tr>
        <tr>
            <td>cardType</td><td>${person.cardType}</td>
        </tr>
        <tr>
            <td>cardNum</td><td>${person.cardNumber}</td>
        </tr>
    </table>