【问题标题】:Java set servlet request into jsp pageJava设置servlet请求进入jsp页面
【发布时间】:2016-10-09 18:24:50
【问题描述】:

我必须将一些值从 servlet 加载到 jsp 页面

我的“order_processing.jsp”JSP 页面代码如下

<%@page import="test.abc.io.User_Objects"%>
<%@ page import="java.util.Date" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!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">
<title>Order Processing</title>
</head>
<body>
    <form name="OrderProcessing" action="order_processing" method="post" onsubmit="return validateForm();">
        <table align="center">
            <tr align="center">
                <td colspan="2">
                    <img src="images/otn_logo.jpg"/>
                </td>
            </tr>
            <tr>
                <td>First Name :</td>
                <td><input type="text" id="txtFirstname" name="txtFirstname" value="${reqObj.firstname}" /></td>
            </tr>
            <tr>
                <td>Last Name :</td>
                <td><input type="text" id="txtLastname" name="txtLastname" value="${reqObj.lastname}" /></td>
            </tr>
            <tr>
                <td>Communication Email :</td>
                <td><input type="text" id="txtCommunicationEmail" name="txtCommunicationEmail" value="${reqObj.commEmail}" />
                <label style="color: red;">*</label></td>
            </tr>
            <tr align="left">
                <td colspan="2"><input type="submit" value="Submit" /></td>
            </tr>
        </table>
    </form>
</body>
</html>

我的 User_Objects 代码

public class User_Objects {
    public String firstname;
    public String lastname;
    public String commEmail;
}

我的“订单处理”代码

import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class OrderProcessing extends HttpServlet {
    private static final long serialVersionUID = 1L;
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        try {
            User_Objects fillObj = new User_Objects();
            fillObj.firstname = "Test";
            fillObj.lastname = "User1";
            fillObj.commEmail = "tuser01@xyz.com";

            request.setAttribute("reqObj", fillObj);
            RequestDispatcher view = request.getRequestDispatcher("/order_processing.jsp");
            view.forward(request, response);
        } catch (Exception e) {
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        System.out.println("into OrderProcessing java");
    }
}

我的 web.xml 代码

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>OrderProcessing</display-name>
  <welcome-file-list>
    <welcome-file>order_processing.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>order_processing</servlet-name>
    <servlet-class>test.abc.io.OrderProcessing</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>order_processing</servlet-name>
    <url-pattern>/order_processing</url-pattern>
  </servlet-mapping>
</web-app>

当我调试这个项目并点击提交按钮时,它会给出以下错误:

SEVERE: Servlet.service() for servlet jsp threw exception
javax.el.PropertyNotFoundException: Property 'firstname' not found on type test.abc.io.User_Objects

我还想在“order_processing.jsp”页面加载上做一些任务。 但是当我运行这个项目时,我的 order_processing.jsp 页面显示成功,但在这种情况下,我的 OrderProcessing.javadoGet 方法没有调用。

我在 Eclipse Mars 中使用 JAVA。

【问题讨论】:

    标签: java jsp


    【解决方案1】:

    对象“User_Objects”不是 java bean: firstname、lastName 和 commEMail 是字段而不是属性。 尝试为 firstName、lastName 和 commEMail 添加 getter / setter

    【讨论】:

    • 谢谢我的第一个问题已经解决。请你建议我“我也想在“order_processing.jsp”页面加载上做一些任务。但是当我运行这个项目时,我的 order_processing.jsp 页面显示成功,但在这种情况下,我的 OrderProcessing.java 的 doGet 方法没有调用?”
    • 如果您加载页面,则完成 HTTP GET 请求(因此调用 doGet)。如果您提交表单,则完成一个 HTTP Post 请求(因此调用 doPost)。 doGet 是否从未被调用,或者只是在您提交表单的情况下?
    • doGet 从未调用过。
    • 您的 url 模式 (web.xml) 是“/order_processing”。您是否像“http://{yourhost-and-port}/order_processing”一样发起请求?如果不是:尝试这样做或将 url 模式更改为“/order_processing.jsp”。请记住,您的表单必须指向相同的 url (action="order_processing" / action="order_processing.jsp"),否则您的 doPost 将不会被调用..
    • 当我将“url-pattern”更改为“/order_processing.jsp”时,我的 doGet 被调用,但之后我的 jsp 页面显示为空白。
    猜你喜欢
    • 1970-01-01
    • 2016-03-09
    • 1970-01-01
    • 1970-01-01
    • 2018-07-06
    • 1970-01-01
    • 1970-01-01
    • 2012-06-09
    • 2015-08-01
    相关资源
    最近更新 更多