我目前正在与 ActiveWeb 战斗。我发现,在我看来,这里的手册http://javalite.io/activeweb包含很多信息。
首先它说 ActiveWeb 是 zer 配置,这是不正确的。web.xml
仍然是必需的。还需要在java中进行配置。例如,文件AppBootstrap.java
应该出现在适当的位置。
其次,我还找不到它,如何配置视图才能工作。
我有以下控制器
package app.controllers;
import java.util.Date;
import org.javalite.activeweb.AppController;
public class GreetingController extends AppController {
public void index() {
}
public void hello() {
view("date", new Date().toString());
view("name", param("name"));
}
}
它就像我在调试器中看到的那样工作。当我打开时,到达方法中http://localhost:8080/testapp/greeting/hello
的断点。hello()
不幸的是hello.ftl
,位于的文件WEB-INF/views/greeting/hello.ftl
显然被忽略了,因为浏览器输出为空。
同时,它是 100% 空的,即根本没有 HTTP 标头。这表明缺少一些常规配置。
此外,我在 EVER 查询中的输出为空,包括
http://localhost:8080/testapp
http://localhost:8080/testapp/greeting
http://localhost:8080/testapp/abracadabra
而一些请求应该返回错误或服务消息。
要求
http://localhost:8080/
返回404
表示容器正常工作。
我web.xml
的如下:
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<filter>
<filter-name>dispatcher</filter-name>
<filter-class>org.javalite.activeweb.RequestDispatcher</filter-class>
<init-param>
<param-name>exclusions</param-name>
<param-value>css,images,js</param-value>
</init-param>
<init-param>
<param-name>root_controller</param-name>
<param-value>home</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>dispatcher</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
更新
当我从中删除root_controller
参数时web.xml
,服务器开始回答目录列表
http://localhost:8080/testapp
其他答案仍然完全是空的
更新 2
显然WEB-INF/views/layouts/default_layout.ftl
应该在场。否则结果为空,不报错。