0

我目前正在与 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应该在场。否则结果为空,不报错。

4

1 回答 1

0

您的应用程序中的某些内容肯定配置错误。你可以在 Github 上的某个地方发布资源吗?你也可以克隆这个应用程序:https ://github.com/javalite/activeweb-bootstrap

于 2014-09-11T19:07:27.683 回答