我目前正在与ActiveWeb作战。在我看来,我发现它的手册http://javalite.io/activeweb包含了大量的信息。
首先它说ActiveWeb是zer-configuration,但事实并非如此。仍需要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
应该出现。否则结果将为空,并且不会报告错误。
答案 0 :(得分:0)
在您的应用中,某些内容肯定是错误配置的。你能在Github的某个地方发布消息吗? 您也可以克隆此应用:https://github.com/javalite/activeweb-bootstrap