使用$ {param.xxx}使用HTML表单

时间:2017-11-17 10:58:45

标签: java maven jsp tomcat intellij-idea

我正在关注Udemy的教程,该教程解释了JSP和Servlets: https://www.udemy.com/jsp-tutorial

本教程使用Eclipse + Tomcat服务器。

由于我是IntelliJ和Maven用户,我想使用这两个来设置我的环境。所以我从以下原型创建了一个Maven项目:“org.apache.maven.archetypes:maven-archetype-webapp”并将我的POM配置为folllows:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>SomeGroupId</groupId>
  <artifactId>HelloWorldJavaServerPages</artifactId>
  <packaging>war</packaging>
  <version>1.0</version>
  <name>HelloWorldJavaServerPages Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>javax.servlet.jsp-api</artifactId>
      <version>2.3.1</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <finalName>HelloWorldJavaServerPages</finalName>
    <plugins>
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <url>http://localhost:8080/manager/text</url>
          <server>Tomcat85Localhost</server>
          <username>admin</username>
          <password>admin</password>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

按照此处所述设置我的其他属性: Tomcat 8 Maven Plugin for Java 8

我能够构建我的项目并使用tomcat插件部署到tomcat服务器(或手动拖动webapps文件夹中的war文件)。

问题是当我有以下两个文件时:

学生form.html

<html>
<head><title>Student Registration Form</title></head>
<body>
<form action="student-response.jsp">
    First name: <input type="text" name="firstName" />
    <br/>
    Last name: <input type="text" name="lastName" />
    <input type="submit" value="Submit" />
</form>
</body>
</html>

学生的response.jsp

<html>
<head><title>Student Confirmation Title</title></head>
<body>
    The student is confirmed: <%= request.getParameter("firstName")%> ${param.lastName}
</body>
</html>

request.getParameter方法有效,但$ {param.lastName}没有,它只是在浏览器中显示为纯文本:$ {param.lastName}。

使用Eclipse(没有Maven)它确实适用于两者,所以我想知道我在做什么实际上在这里有什么不同/错误以及为什么它不起作用。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

一旦我发现大括号之间的引用被称为&#34;表达式语言&#34;,我决定在stackoverflow上进行另一次搜索并发现: Expression Language in JSP not working

如上面链接中所述更改web.xml使其正常工作。

谢谢大家阅读我的问题,实际上答案非常简单。