【发布时间】:2020-09-28 22:16:48
【问题描述】:
我看到我的情况有很多类似的问题和答案,但问题是它们都不适合我! 我正在尝试学习 JSF 和 Spring boot,并且我已经使用了一些教程来管理这个简单的小代码,但是它不起作用。 问题是 Eclipse 知道我的托管 Bean 及其在 jsf 页面中的属性,并且我的页面呈现完美,但是当我输入数字并单击任何命令按钮时,就会出现错误! 我想也许它找不到目标类,所以我尝试用
定义它<build>
<outputDirectory>src\main\webapp\WEB-INF\classes</outputDirectory>
但没有发生任何不同!你能帮帮我吗? 我的 pom.xml 是:
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.tebmahani</groupId>
<artifactId>Memorist</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<!-- https://mvnrepository.com/artifact/javax/javaee-api -->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>8.0.1</version>
<!-- <scope>provided</scope> -->
</dependency>
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
<!-- <scope>provided</scope> -->
</dependency>
<!-- https://mvnrepository.com/artifact/com.sun.faces/jsf-api -->
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.2.20</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.sun.faces/jsf-impl -->
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.2.20</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<!-- <scope>provided</scope> -->
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
<!-- <scope>provided</scope> -->
</dependency>
<dependency>
<groupId>javax.enterprise</groupId>
<artifactId>cdi-api</artifactId>
<version>2.0</version>
<!-- <scope>provided</scope> -->
</dependency>
<!-- https://mvnrepository.com/artifact/com.sun.el/el-ri -->
<dependency>
<groupId>com.sun.el</groupId>
<artifactId>el-ri</artifactId>
<version>1.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-catalina -->
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-catalina</artifactId>
<version>9.0.35</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.6.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<outputDirectory>src\main\webapp\WEB-INF\classes</outputDirectory>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.3</version>
<configuration>
<failOnMissingWebXml>true</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
我的托管 Bean 是:
package com.tebmahani.tinyCalculator;
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
@Named("tinyCalculator")
@RequestScoped
public class TinyCalculator {
private double _param1;
private double _param2;
private double _result;
public TinyCalculator() {}
public TinyCalculator(double param1, double param2, double result) {
super();
this._param1 = param1;
this._param2 = param2;
this._result = result;
}
public double getParam1() {
return _param1;
}
public void setParam1(double param1) {
this._param1 = param1;
}
public double getParam2() {
return _param2;
}
public void setParam2(double param2) {
this._param2 = param2;
}
public double getResult() {
return _result;
}
public void setResult(double result) {
this._result = result;
}
public String add() {
this._result = _param1 + _param2;
return "";
}
public String subtract() {
this._result = _param1 - _param2;
return "";
}
public String multiply() {
this._result = _param1 * _param2;
return "";
}
public String divide() {
this._result = _param1 / _param2;
return "";
}
}
【问题讨论】:
-
99.99% 确定其中之一会为您工作。很可能您没有完全阅读它们或理解错误。但是你肯定做错的不是显示和说明你做了其他问题中提到的所有事情。如果投票最多的问题,我将投票结束这个问题作为重复问题。我想防止它被关闭,改进问题......很多!
标签: spring-boot cdi jsf-2.2