sách gpt4 ai đã đi

JSP 获取/设置整个对象的参数

In lại 作者:行者123 更新时间:2023-12-04 17:49:44 31 4
mua khóa gpt4 Nike

我是这个社区的新手,想出了我的第一个问题。

我正在使用 JSP,我成功地创建了 JSP-Sites,它正在使用jsp:setParameter 和 jsp:getParameter 具有单个字符串。

现在我想对整个对象做同样的事情(是的,我知道字符串也是一个对象 :P)。我尝试了以下方法:

这是我的 Bean:

@Entity
@Table(name="TBL_SPJ_MOVIE")
public class Movie implements Serializable {
@Id
@Column(name="MOVIE_ID", unique=true)
private int movieID = 0;

@Column(name="MOVIE_BACKDROPPATH")
private String backDropPath = "";

@Column(name="MOVIE_ORIGINALTITLE")
private String originalTitle = "";

@Column(name="MOVIE_POPULARITY")
private double popularity = 0.0;

@Column(name="MOVIE_POSTERPATH", length=1000)
private String posterPath = "";

@Temporal(TemporalType.DATE)
@Column(name="MOVIE_RELEASEDATE")
private Date releaseDate = null;

@Column(name="MOVIE_TITLE")
private String title = "";

@Column(name="MOVIE_ADULT")
private boolean adult = false;

@Column(name="MOVIE_BUDGET")
private int budget = 0;

@Column(name="MOVIE_HOMEPAGE", length=1000)
private String homepage = "";

@Lob
@Column(name="MOVIE_OVERVIEW", length=1000)
private String overview = "";

@Column(name="MOVIE_RUNTIME")
private int runtime = 0;

@Column(name="MOVIE_VOTEAVERAGE")
private double voteAverage = 0.0;

@Column(name="MOVIE_VOTECOUNT")
private int voteCount = 0;

public Movie() {}

//##########################################################################################
@SuppressWarnings("unchecked")
@Transient
public List getMovies() {
List movies = new ArrayList();
EntityManagerFactory factory = Persistence.createEntityManagerFactory("SPJUnit");
EntityManager em = factory.createEntityManager();

Query query = em.createQuery("SELECT m FROM Movie m");

movies = (List)query.getResultList();

return movies;
}
@Transient
private Movie currentMovie = null;
public Movie getCurrentMovie() {
return currentMovie;
}
public void setCurrentMovie(Movie currentMovie) {
this.currentMovie = currentMovie;
}
//##########################################################################################

// Getter and Setter

public String toString() {
return title;
}
}

这是我的 movies.jsp

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






<đầu>

Movie Titles






Movie Titles










  • name="currentMovie"
    value="${movie}"
    />







这里有一个包含所有电影的大列表。我想是因为我的 toString() 方法所有标题都打印出来了吗?好吧,有了这些表格,我想将选定的电影提交给另一个 jsp:

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






<đầu>

Movie
















似乎只发送了电影的标题,因为当我调用 singleMovie.jsp 时出现以下错误:

org.apache.jasper.JasperException: org.apache.jasper.JasperException: org.apache.jasper.JasperException: PWC6338: Cannot convert "Ariel" for the attribute currentMovie of the bean de.Movie: PWC6348: Property editor not registered with the PropertyEditorManager

“Ariel”是我选择提交的电影的标题。

我想发送整部电影,这样我就可以在我的文件中使用 Movie-Bean 的所有字段singleMovie.jsp.

只要我只处理电影的标题,一切都很好。

那我做错了什么?

1 Câu trả lời

您似乎没有意识到 HTML 和 HTTP 不适用于对象。他们只能提交字符串参数。

您不应仅使用 JSP 构建应用程序。 JSP 非常适合生成 HTML。其余部分(获取参数、验证参数、从数据库检索对象和将对象保存到数据库等)应该使用 Java 代码、在 servlet 中或在您首选的 MVC 框架的 Controller 中完成。

您也不应该将整部电影发送到服务器来显示它。电影在服务器端的数据库中。服务器需要从客户端获取的只是它必须显示的电影的 ID。所以应用程序应该像这样工作:

  1. 向 ListMovies servlet 发送请求
  2. servlet 在数据库中搜索电影,并将电影列表存储在请求属性中
  3. servlet 转发到 listMovies.jsp
  4. listMovies 使用 JSTL 和 EL 循环访问存储在请求属性中的电影,并为每个电影生成指向 displayMovie?id=theMovieId 的链接。当应该使用链接时,不要使用仅包含按钮的表单。
  5. 用户点击链接。向 DisplayMovie servlet 发送请求
  6. servlet 获取nhận dạng 参数的值。它使用此 ID 在数据库中查找电影,并将其存储在请求属性中
  7. servlet 转发到 displayMovie.jsp 页面
  8. displayMovie.jsp 页面使用 JSTL 和 EL 显示电影的详细信息

完全忘记 jsp:useBean、jsp:setProperty 和 jsp:getProperty。它们属于过去,不应再使用。

此外,对数据库执行查询以获取电影的方法不应该在 Movie 类中。它们应该在 MovieDAO 类中。仅仅为了从数据库中获取其他电影而实例化一部电影没有多大意义。实体的责任不是查询数据库。

关于JSP 获取/设置整个对象的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16638668/

31 4 0
Bài viết được đề xuất: R-package Lattice : group by color doesn't work when using panel argument
Bài viết được đề xuất: snmp - 什么是正确的 snmptrap 命令格式?
Bài viết được đề xuất: json - 如何使用 Breeze FilterQueryOp 忽略大小写
Bài viết được đề xuất: scala - 没有案例类的模式匹配
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com