繁体   English   中英

如何检索体积参数并将其显示在result.jsp中

[英]How to retrieve a volume parameter and making it display in result.jsp

我对这个问题感到非常困惑。 我已经尝试了一切,但没有任何效果。

我希望能够获得音量并将其显示为param.volume。 但是,如果我将其作为脚本执行,它将返回零。

我希望能够创建名为getVolume的getter方法,该方法在被调用时(方*方*方)返回多维数据集的体积。

我的getter方法是:

package servlets;



public class Cube {



    private int side;


    private int volume;

    public void setVolume(int volume){
        this.volume=volume;
    }

    public int getVolume() {
        volume=side*side*side;
        return volume;
    }

    public int getSide() {
        return side;
    }

    public void setSide(int side) {
        this.side = side;
    }

}

在CalcServlet中:

package servlets;

import java.io.IOException;


import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


/**
 * Servlet implementation class CalcServlet
 */
@WebServlet("/calc")
public class CalcServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;


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



        }


        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {


                String scube=request.getParameter("cube");

                Cube obj=new Cube();


                try{
            int cube=Integer.parseInt(scube);
            obj.setSide(cube);
            obj.getVolume();



            request.setAttribute("cube", obj);



            }catch(NumberFormatException e){

            }
                ServletContext sc = this.getServletContext();
            //RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/pages/result.jsp"); 
                RequestDispatcher rd = sc.getRequestDispatcher ("/WEB-INF/pages/result.jsp");
            rd.forward(request, response);

        }

    }

在result.jsp中:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
 <%@ taglib prefix="c" 
           uri="http://java.sun.com/jsp/jstl/core" %>  

<%@ taglib tagdir="/WEB-INF/tags" prefix="myjsp" %>
<%@ page import="servlets.Cube, servlets.CalcServlet " %>


<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<body>

<h2>Cube Info Using JSP 2.0 </h2><br>
<b>Side of a Cube: ${param.side} </b><br>
<b>Volume of a Cube: ${param.side*param.side*param.side}</b><br>

 <br></br><br>
 Using Custom Tag:
<myjsp:displayform color="red"></myjsp:displayform>


 <br></br><br>
<h2>Using JSTL:</h2>
<h2>Cube Info Using JSP 2.0 </h2><br>
<b>Side of a Cube: ${param.side} </b><br>
<b>Volume of a Cube: </b>
<c:choose>
    <c:when test="${param.side*param.side*param.side>10}">
    <li><span style="color: red;">Volume: ${param.side*param.side*param.side}</span></li>
    </c:when>
    <c:otherwise>
    <li><span style="color: black;">Volume: ${param.side*param.side*param.side}</span></li>
    </c:otherwise>
    </c:choose>



</body>
</html>

显示结果,因为正在读取param.side。 但是我想用param.volume做到这一点。 请帮忙!! 我已经尝试了一切。

首先修复您的吸气剂/吸水剂的体积。 现在,您的吸气剂就像是塞特犬。

public void setVolume(int Volume){
        this.volume=volume;
    }

    public int getVolume() {
        return volume;
    }

然后在您的Serlvet中(适当的做法是在实用程序类中执行此操作)

            int side=Integer.parseInt(scube);
            obj.setSide(side);
            int volume= side*side*side; 
            obj.setVolume(volume);

            request.setAttribute("cube", obj);

您命名了包含bean Cube的参数“ cube”。 在那一行上request.setAttribute(“ cube”,obj);

因此要访问JSP中的bean多维数据集,您应该这样做

${cube.side}
${cube.volume}

或正确的方法

<c:out value="${cube.side}"/>
<c:out value="${cube.volume}"/>

对于任何想知道答案的人,我都是从朋友那里得到的。 希望这将使社区受益。

在result.jsp中:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
 <%@ taglib prefix="c" 
           uri="http://java.sun.com/jsp/jstl/core" %>  

<%@ taglib tagdir="/WEB-INF/tags" prefix="myjsp" %>
<%@ page import="servlets.Cube"%>
<%
    Cube cube = (Cube) request.getAttribute("cube");
    int side = 0, volume = 0;

    if (cube != null) {
        side = cube.getSide();
        volume = cube.getvolume();
    }
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<body>

<h2>Cube Info Using JSP 2.0 </h2><br>
<b>Side of a Cube: ${cube.side} </b><br>
<b>Volume of a Cube: ${cube.getvolume()}</b><br>

 <br></br><br>
 Using Custom Tag:
<myjsp:displayform color="red"></myjsp:displayform>


 <br></br><br>
<h2>Using JSTL:</h2>
<h2>Cube Info Using JSP 2.0 </h2><br>
<b>Side of a Cube: ${cube.side} </b><br>
<b>Volume of a Cube: <c:if test="${cube.volume}">10><font color="red"></font>the volume is ${cube.getvolume()}</c:if></b><br>

</body>
</html>

并在calcservlet中:

package servlets;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class CalcServlet
 */
@WebServlet("/calc")
public class CalcServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;


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

        RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/pages/result.jsp"); 
            rd.forward(request, response);

        }


        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            String scube=request.getParameter("side");

            Cube obj=new Cube();

            try{
            int cube=Integer.parseInt(scube);
            obj.setSide(cube);
                                     System.out.println("works");

            obj.getvolume();

            request.setAttribute("cube", obj);

            }catch(NumberFormatException e){

            }
            RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/pages/result.jsp"); 
            rd.forward(request, response);

        }

    }

在多维数据集:

package servlets;



public class Cube {



    private int side;


    public int getvolume() {
        return side*side*side;
    }

    public int getSide() {
        return side;
    }

    public void setSide(int side) {
        this.side = side;
    }

}

In form.jsp:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Form</title>
</head>
<body>
</head>
<body>

            <h2>Side Form</h2> <!-- page heading -->

            <form method=post action="calc"><!-- open a neew form -->

            Side of a Cube: <input type=number name=side required><br> <!-- the iname parameter -->
            <br></br>
            <input type=submit value=Calculate><br> <!-- submit to the home page if everything is fine, else additem servlet and display the new item -->
            <br><br><br></br>
            </form> <!-- close form -->

</body>
</html>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM