javaweb mvc框架之 VRaptor 4 使用入门
这个框架官网说了Really simple!
不过配置运行起来真的不是首页说的那么简单。。。。
关于配置依赖,可以看官网这里:http://www.vraptor.org/en/docs/dependencies-and-prerequisites/
我这里用的jdk-10.0.1+apache-tomcat-9.0.1+apache-maven-3.5.2 + Eclipse PHOTON
新建一个maven的java web项目(我这里项目名称叫abc)
在pom.xml文件中加入依赖
我总结了下官网介绍的依赖,然后多加了个javax.xml.bind(反正我这里环境没有这个起不来)
<dependency>
<groupId>br.com.caelum</groupId>
<artifactId>vraptor</artifactId>
<version>4.2.0-RC5</version>
</dependency>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.18.1-GA</version>
</dependency>
<dependency>
<groupId>org.jboss.weld.servlet</groupId>
<artifactId>weld-servlet-core</artifactId>
<version>2.1.2.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.weld</groupId>
<artifactId>weld-core-impl</artifactId>
<version>2.1.2.Final</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.5</version> <!-- or the latest version avaiable -->
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator-cdi</artifactId>
<version>5.1.1.Final</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
web.xml加入监听器
<listener>
<listener-class>org.jboss.weld.environment.servlet.Listener</listener-class>
</listener>
新建beans.xml
web.xml同级目录
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
version="1.1" bean-discovery-mode="all">
</beans>
新建validation.xml
<?xml version="1.0" encoding="UTF-8"?>
<validation-config xmlns="http://jboss.org/xml/ns/javax/validation/configuration"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jboss.org/xml/ns/javax/validation/configuration
validation-configuration-1.1.xsd"
version="1.1">
<executable-validation enabled="false"/>
</validation-config>
新建类TeController
package abc;
import javax.inject.Inject;
import br.com.caelum.vraptor.Controller;
import br.com.caelum.vraptor.Get;
import br.com.caelum.vraptor.Result;
@Controller
public class TeController {
@Inject private Result result;
@Get("/home")
public void home() {
result.include("message", "Hello, VRaptor 4!");
}
}
类名第一个字母必须大写
jsp的存放位置为WEB-INF/jsp/te/home.jsp
新建home.jsp
这个页面中使用EL表达式直接获取了message对应的值
<%@page isELIgnored="false" %>是开启EL表达式,高版本应该是默认开启的,可能是这个框架的serverlet版本低,所以不加这个不好使
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@page isELIgnored="false" %>
<!DOCTYPE html>
<html>
<head>
<title>Home page</title>
</head>
<body>
${message}
</body>
</html>