删除编译错误
This commit is contained in:
parent
83883319ab
commit
a4683ce0d6
@ -1,3 +0,0 @@
|
|||||||
### Relevant Articles
|
|
||||||
|
|
||||||
- [Intro to Apache Tapestry](https://www.baeldung.com/apache-tapestry)
|
|
@ -1,152 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
<artifactId>apache-tapestry</artifactId>
|
|
||||||
<version>0.0.1-SNAPSHOT</version>
|
|
||||||
<name>apache-tapestry</name>
|
|
||||||
<packaging>war</packaging>
|
|
||||||
|
|
||||||
<parent>
|
|
||||||
<groupId>com.baeldung</groupId>
|
|
||||||
<artifactId>web-modules</artifactId>
|
|
||||||
<version>1.0.0-SNAPSHOT</version>
|
|
||||||
</parent>
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
<!-- To set up an application with a database, change the artifactId below to tapestry-hibernate, -->
|
|
||||||
<!-- and add a dependency on your JDBC driver. You'll also need to add Hibernate configuration -->
|
|
||||||
<!-- files, such as hibernate.cfg.xml. -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.tapestry</groupId>
|
|
||||||
<artifactId>tapestry-core</artifactId>
|
|
||||||
<version>${tapestry.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<!-- Include the Log4j implementation for the SLF4J logging framework -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.slf4j</groupId>
|
|
||||||
<artifactId>slf4j-log4j12</artifactId>
|
|
||||||
<version>${slf4j-release-version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.tapestry</groupId>
|
|
||||||
<artifactId>tapestry-webresources</artifactId>
|
|
||||||
<version>${tapestry.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<!-- Uncomment this to add support for file uploads: -->
|
|
||||||
<!-- <dependency> -->
|
|
||||||
<!-- <groupId>org.apache.tapestry</groupId> -->
|
|
||||||
<!-- <artifactId>tapestry-upload</artifactId> -->
|
|
||||||
<!-- <version>${tapestry.version}</version> -->
|
|
||||||
<!-- </dependency> -->
|
|
||||||
<!-- A dependency on either JUnit or TestNG is required, or the surefire plugin (which runs the -->
|
|
||||||
<!-- tests) will fail, preventing Maven from packaging the WAR. Tapestry includes a large number -->
|
|
||||||
<!-- of testing facilities designed for use with TestNG (http://testng.org/), -->
|
|
||||||
<!-- so it's recommended. -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.testng</groupId>
|
|
||||||
<artifactId>testng</artifactId>
|
|
||||||
<version>${testng-release-version}</version>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.tapestry</groupId>
|
|
||||||
<artifactId>tapestry-test</artifactId>
|
|
||||||
<version>${tapestry.version}</version>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
<!-- Provided by the servlet container, but sometimes referenced in the application code. -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>javax.servlet</groupId>
|
|
||||||
<artifactId>servlet-api</artifactId>
|
|
||||||
<version>${servlet-api-release-version}</version>
|
|
||||||
<scope>provided</scope>
|
|
||||||
</dependency>
|
|
||||||
<!-- Provide dependency to the Tapestry javadoc taglet which replaces the Maven component report -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.tapestry</groupId>
|
|
||||||
<artifactId>tapestry-javadoc</artifactId>
|
|
||||||
<version>${tapestry.version}</version>
|
|
||||||
<scope>provided</scope>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<finalName>apache-tapestry</finalName>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
|
||||||
<version>${compiler.plugin.version}</version>
|
|
||||||
<configuration>
|
|
||||||
<source>${source.version}</source>
|
|
||||||
<target>${target.version}</target>
|
|
||||||
<optimize>true</optimize>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-surefire-plugin</artifactId>
|
|
||||||
<version>${compiler.surefire.version}</version>
|
|
||||||
<configuration>
|
|
||||||
<systemPropertyVariables>
|
|
||||||
<tapestry.execution-mode>Qa</tapestry.execution-mode>
|
|
||||||
</systemPropertyVariables>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
<!-- Run the application using "mvn jetty:run" -->
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.mortbay.jetty</groupId>
|
|
||||||
<artifactId>maven-jetty-plugin</artifactId>
|
|
||||||
<version>${compiler.jetty.version}</version>
|
|
||||||
<configuration>
|
|
||||||
<!-- Log to the console. -->
|
|
||||||
<requestLog implementation="org.mortbay.jetty.NCSARequestLog">
|
|
||||||
<!-- This doesn't do anything for Jetty, but is a workaround -->
|
|
||||||
<!-- for a Maven bug that prevents the requestLog from being set. -->
|
|
||||||
<append>true</append>
|
|
||||||
</requestLog>
|
|
||||||
<systemProperties>
|
|
||||||
<systemProperty>
|
|
||||||
<name>tapestry.execution-mode</name>
|
|
||||||
<value>development</value>
|
|
||||||
</systemProperty>
|
|
||||||
</systemProperties>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-war-plugin</artifactId>
|
|
||||||
<version>3.3.1</version>
|
|
||||||
<configuration>
|
|
||||||
<archive>
|
|
||||||
<manifest>
|
|
||||||
<addClasspath>true</addClasspath>
|
|
||||||
</manifest>
|
|
||||||
</archive>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
|
|
||||||
<repositories>
|
|
||||||
<repository>
|
|
||||||
<id>jboss</id>
|
|
||||||
<url>http://repository.jboss.org/nexus/content/groups/public/</url>
|
|
||||||
</repository>
|
|
||||||
</repositories>
|
|
||||||
|
|
||||||
<properties>
|
|
||||||
<compiler.jetty.version>6.1.16</compiler.jetty.version>
|
|
||||||
<compiler.surefire.version>3.0.0-M5</compiler.surefire.version>
|
|
||||||
<compiler.plugin.version>3.8.1</compiler.plugin.version>
|
|
||||||
<source.version>11</source.version>
|
|
||||||
<target.version>11</target.version>
|
|
||||||
<tapestry.version>5.8.2</tapestry.version>
|
|
||||||
<servlet-api-release-version>2.5</servlet-api-release-version>
|
|
||||||
<testng-release-version>6.8.21</testng-release-version>
|
|
||||||
<slf4j-release-version>1.7.19</slf4j-release-version>
|
|
||||||
</properties>
|
|
||||||
|
|
||||||
</project>
|
|
@ -1,16 +0,0 @@
|
|||||||
package com.baeldung.tapestry.components;
|
|
||||||
|
|
||||||
import org.apache.tapestry5.BindingConstants;
|
|
||||||
import org.apache.tapestry5.annotations.Parameter;
|
|
||||||
import org.apache.tapestry5.annotations.Property;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Layout component for pages of application.
|
|
||||||
*/
|
|
||||||
public class Layout {
|
|
||||||
|
|
||||||
@Property
|
|
||||||
@Parameter(required = true, defaultPrefix = BindingConstants.LITERAL)
|
|
||||||
private String title;
|
|
||||||
|
|
||||||
}
|
|
@ -1,5 +0,0 @@
|
|||||||
package com.baeldung.tapestry.pages;
|
|
||||||
|
|
||||||
public class Error404 {
|
|
||||||
|
|
||||||
}
|
|
@ -1,36 +0,0 @@
|
|||||||
package com.baeldung.tapestry.pages;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
import org.apache.tapestry5.Block;
|
|
||||||
import org.apache.tapestry5.annotations.Log;
|
|
||||||
import org.apache.tapestry5.annotations.Property;
|
|
||||||
import org.apache.tapestry5.ioc.annotations.Inject;
|
|
||||||
import org.apache.tapestry5.services.ajax.AjaxResponseRenderer;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
|
|
||||||
public class Home {
|
|
||||||
|
|
||||||
@Property
|
|
||||||
private String appName = "apache-tapestry";
|
|
||||||
|
|
||||||
public Date getCurrentTime() {
|
|
||||||
return new Date();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
private Logger logger;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
private AjaxResponseRenderer ajaxResponseRenderer;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
private Block ajaxBlock;
|
|
||||||
|
|
||||||
@Log
|
|
||||||
void onCallAjax() {
|
|
||||||
logger.info("Ajax call");
|
|
||||||
ajaxResponseRenderer.addRender("ajaxZone", ajaxBlock);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,59 +0,0 @@
|
|||||||
package com.baeldung.tapestry.pages;
|
|
||||||
|
|
||||||
|
|
||||||
import org.apache.tapestry5.Block;
|
|
||||||
import org.apache.tapestry5.EventContext;
|
|
||||||
import org.apache.tapestry5.SymbolConstants;
|
|
||||||
import org.apache.tapestry5.annotations.InjectPage;
|
|
||||||
import org.apache.tapestry5.annotations.Log;
|
|
||||||
import org.apache.tapestry5.annotations.Property;
|
|
||||||
import org.apache.tapestry5.ioc.annotations.Inject;
|
|
||||||
import org.apache.tapestry5.ioc.annotations.Symbol;
|
|
||||||
import org.apache.tapestry5.services.HttpError;
|
|
||||||
import org.apache.tapestry5.services.ajax.AjaxResponseRenderer;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Start page of application apache-tapestry.
|
|
||||||
*/
|
|
||||||
public class Index {
|
|
||||||
@Inject
|
|
||||||
private Logger logger;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
private AjaxResponseRenderer ajaxResponseRenderer;
|
|
||||||
|
|
||||||
@Property
|
|
||||||
@Inject
|
|
||||||
@Symbol(SymbolConstants.TAPESTRY_VERSION)
|
|
||||||
private String tapestryVersion;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
private Block block;
|
|
||||||
|
|
||||||
// Handle call with an unwanted context
|
|
||||||
Object onActivate(EventContext eventContext) {
|
|
||||||
return eventContext.getCount() > 0 ?
|
|
||||||
new HttpError(404, "Resource not found") :
|
|
||||||
null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Log
|
|
||||||
void onComplete() {
|
|
||||||
logger.info("Complete call on Index page");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Log
|
|
||||||
void onAjax() {
|
|
||||||
logger.info("Ajax call on Index page");
|
|
||||||
|
|
||||||
ajaxResponseRenderer.addRender("middlezone", block);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getCurrentTime() {
|
|
||||||
return new Date();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
package com.baeldung.tapestry.pages;
|
|
||||||
|
|
||||||
import org.apache.tapestry5.alerts.AlertManager;
|
|
||||||
import org.apache.tapestry5.annotations.InjectComponent;
|
|
||||||
import org.apache.tapestry5.annotations.Property;
|
|
||||||
import org.apache.tapestry5.corelib.components.Form;
|
|
||||||
import org.apache.tapestry5.ioc.annotations.Inject;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
|
|
||||||
public class Login {
|
|
||||||
@Inject
|
|
||||||
private Logger logger;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
private AlertManager alertManager;
|
|
||||||
|
|
||||||
@InjectComponent
|
|
||||||
private Form login;
|
|
||||||
|
|
||||||
@Property
|
|
||||||
private String email;
|
|
||||||
|
|
||||||
@Property
|
|
||||||
private String password;
|
|
||||||
|
|
||||||
void onValidateFromLogin() {
|
|
||||||
if(email == null || password == null) {
|
|
||||||
alertManager.error("Email/Password is null");
|
|
||||||
login.recordError("Validation failed");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Object onSuccessFromLogin() {
|
|
||||||
alertManager.success("Welcome! Login Successful");
|
|
||||||
return Home.class;
|
|
||||||
}
|
|
||||||
|
|
||||||
void onFailureFromLogin() {
|
|
||||||
alertManager.error("Please try again with correct credentials");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,128 +0,0 @@
|
|||||||
package com.baeldung.tapestry.services;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
import org.apache.tapestry5.SymbolConstants;
|
|
||||||
import org.apache.tapestry5.commons.MappedConfiguration;
|
|
||||||
import org.apache.tapestry5.commons.OrderedConfiguration;
|
|
||||||
import org.apache.tapestry5.http.services.Request;
|
|
||||||
import org.apache.tapestry5.http.services.RequestFilter;
|
|
||||||
import org.apache.tapestry5.http.services.RequestHandler;
|
|
||||||
import org.apache.tapestry5.http.services.Response;
|
|
||||||
import org.apache.tapestry5.ioc.ServiceBinder;
|
|
||||||
import org.apache.tapestry5.ioc.annotations.Contribute;
|
|
||||||
import org.apache.tapestry5.ioc.annotations.Local;
|
|
||||||
import org.apache.tapestry5.ioc.services.ApplicationDefaults;
|
|
||||||
import org.apache.tapestry5.ioc.services.SymbolProvider;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This module is automatically included as part of the Tapestry IoC Registry, it's a good place to
|
|
||||||
* configure and extend Tapestry, or to place your own service definitions.
|
|
||||||
*/
|
|
||||||
public class AppModule {
|
|
||||||
public static void bind(ServiceBinder binder) {
|
|
||||||
// binder.bind(MyServiceInterface.class, MyServiceImpl.class);
|
|
||||||
|
|
||||||
// Make bind() calls on the binder object to define most IoC services.
|
|
||||||
// Use service builder methods (example below) when the implementation
|
|
||||||
// is provided inline, or requires more initialization than simply
|
|
||||||
// invoking the constructor.
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void contributeFactoryDefaults(
|
|
||||||
MappedConfiguration<String, Object> configuration) {
|
|
||||||
// The values defined here (as factory default overrides) are themselves
|
|
||||||
// overridden with application defaults by DevelopmentModule and QaModule.
|
|
||||||
|
|
||||||
// The application version is primarily useful as it appears in
|
|
||||||
// any exception reports (HTML or textual).
|
|
||||||
configuration.override(SymbolConstants.APPLICATION_VERSION, "0.0.1-SNAPSHOT");
|
|
||||||
|
|
||||||
// This is something that should be removed when going to production, but is useful
|
|
||||||
// in the early stages of development.
|
|
||||||
configuration.override(SymbolConstants.PRODUCTION_MODE, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void contributeApplicationDefaults(
|
|
||||||
MappedConfiguration<String, Object> configuration) {
|
|
||||||
// Contributions to ApplicationDefaults will override any contributions to
|
|
||||||
// FactoryDefaults (with the same key). Here we're restricting the supported
|
|
||||||
// locales to just "en" (English). As you add localised message catalogs and other assets,
|
|
||||||
// you can extend this list of locales (it's a comma separated series of locale names;
|
|
||||||
// the first locale name is the default when there's no reasonable match).
|
|
||||||
configuration.add(SymbolConstants.SUPPORTED_LOCALES, "en");
|
|
||||||
|
|
||||||
// You should change the passphrase immediately; the HMAC passphrase is used to secure
|
|
||||||
// the hidden field data stored in forms to encrypt and digitally sign client-side data.
|
|
||||||
configuration.add(SymbolConstants.HMAC_PASSPHRASE, "change this immediately");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Use annotation or method naming convention: <code>contributeApplicationDefaults</code>
|
|
||||||
*/
|
|
||||||
@Contribute(SymbolProvider.class)
|
|
||||||
@ApplicationDefaults
|
|
||||||
public static void setupEnvironment(MappedConfiguration<String, Object> configuration) {
|
|
||||||
// Support for jQuery is new in Tapestry 5.4 and will become the only supported
|
|
||||||
// option in 5.5.
|
|
||||||
configuration.add(SymbolConstants.JAVASCRIPT_INFRASTRUCTURE_PROVIDER, "jquery");
|
|
||||||
configuration.add(SymbolConstants.BOOTSTRAP_ROOT, "context:mybootstrap");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This is a service definition, the service will be named "TimingFilter". The interface,
|
|
||||||
* RequestFilter, is used within the RequestHandler service pipeline, which is built from the
|
|
||||||
* RequestHandler service configuration. Tapestry IoC is responsible for passing in an
|
|
||||||
* appropriate Logger instance. Requests for static resources are handled at a higher level, so
|
|
||||||
* this filter will only be invoked for Tapestry related requests.
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* Service builder methods are useful when the implementation is inline as an inner class
|
|
||||||
* (as here) or require some other kind of special initialization. In most cases,
|
|
||||||
* use the static bind() method instead.
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* If this method was named "build", then the service id would be taken from the
|
|
||||||
* service interface and would be "RequestFilter". Since Tapestry already defines
|
|
||||||
* a service named "RequestFilter" we use an explicit service id that we can reference
|
|
||||||
* inside the contribution method.
|
|
||||||
*/
|
|
||||||
public RequestFilter buildTimingFilter(final Logger log) {
|
|
||||||
return new RequestFilter() {
|
|
||||||
public boolean service(Request request, Response response, RequestHandler handler)
|
|
||||||
throws IOException {
|
|
||||||
long startTime = System.currentTimeMillis();
|
|
||||||
|
|
||||||
try {
|
|
||||||
// The responsibility of a filter is to invoke the corresponding method
|
|
||||||
// in the handler. When you chain multiple filters together, each filter
|
|
||||||
// received a handler that is a bridge to the next filter.
|
|
||||||
|
|
||||||
return handler.service(request, response);
|
|
||||||
} finally {
|
|
||||||
long elapsed = System.currentTimeMillis() - startTime;
|
|
||||||
|
|
||||||
log.info("Request time: {} ms", elapsed);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This is a contribution to the RequestHandler service configuration. This is how we extend
|
|
||||||
* Tapestry using the timing filter. A common use for this kind of filter is transaction
|
|
||||||
* management or security. The @Local annotation selects the desired service by type, but only
|
|
||||||
* from the same module. Without @Local, there would be an error due to the other service(s)
|
|
||||||
* that implement RequestFilter (defined in other modules).
|
|
||||||
*/
|
|
||||||
@Contribute(RequestHandler.class)
|
|
||||||
public void addTimingFilter(OrderedConfiguration<RequestFilter> configuration, @Local RequestFilter filter) {
|
|
||||||
// Each contribution to an ordered configuration has a name, When necessary, you may
|
|
||||||
// set constraints to precisely control the invocation order of the contributed filter
|
|
||||||
// within the pipeline.
|
|
||||||
|
|
||||||
configuration.add("Timing", filter);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,24 +0,0 @@
|
|||||||
package com.baeldung.tapestry.services;
|
|
||||||
|
|
||||||
import org.apache.tapestry5.SymbolConstants;
|
|
||||||
import org.apache.tapestry5.commons.MappedConfiguration;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This module is automatically included as part of the Tapestry IoC Registry if <em>tapestry.execution-mode</em>
|
|
||||||
* includes <code>development</code>.
|
|
||||||
*/
|
|
||||||
public class DevelopmentModule {
|
|
||||||
public static void contributeApplicationDefaults(
|
|
||||||
MappedConfiguration<String, Object> configuration) {
|
|
||||||
// The factory default is true but during the early stages of an application
|
|
||||||
// overriding to false is a good idea. In addition, this is often overridden
|
|
||||||
// on the command line as -Dtapestry.production-mode=false
|
|
||||||
configuration.add(SymbolConstants.PRODUCTION_MODE, false);
|
|
||||||
|
|
||||||
// The application version number is incorprated into URLs for some
|
|
||||||
// assets. Web browsers will cache assets because of the far future expires
|
|
||||||
// header. If existing assets are changed, the version number should also
|
|
||||||
// change, to force the browser to download new versions.
|
|
||||||
configuration.add(SymbolConstants.APPLICATION_VERSION, "0.0.1-SNAPSHOT-DEV");
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,34 +0,0 @@
|
|||||||
package com.baeldung.tapestry.services;
|
|
||||||
|
|
||||||
import org.apache.tapestry5.SymbolConstants;
|
|
||||||
import org.apache.tapestry5.commons.MappedConfiguration;
|
|
||||||
import org.apache.tapestry5.ioc.ServiceBinder;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This module is automatically included as part of the Tapestry IoC Registry if <em>tapestry.execution-mode</em>
|
|
||||||
* includes <code>qa</code> ("quality assurance").
|
|
||||||
*/
|
|
||||||
public class QaModule
|
|
||||||
{
|
|
||||||
public static void bind(ServiceBinder binder)
|
|
||||||
{
|
|
||||||
// Bind any services needed by the QA team to produce their reports
|
|
||||||
// binder.bind(MyServiceMonitorInterface.class, MyServiceMonitorImpl.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static void contributeApplicationDefaults(
|
|
||||||
MappedConfiguration<String, Object> configuration)
|
|
||||||
{
|
|
||||||
// The factory default is true but during the early stages of an application
|
|
||||||
// overriding to false is a good idea. In addition, this is often overridden
|
|
||||||
// on the command line as -Dtapestry.production-mode=false
|
|
||||||
configuration.add(SymbolConstants.PRODUCTION_MODE, false);
|
|
||||||
|
|
||||||
// The application version number is incorprated into URLs for some
|
|
||||||
// assets. Web browsers will cache assets because of the far future expires
|
|
||||||
// header. If existing assets are changed, the version number should also
|
|
||||||
// change, to force the browser to download new versions.
|
|
||||||
configuration.add(SymbolConstants.APPLICATION_VERSION, "0.0.1-SNAPSHOT-QA");
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_4.xsd">
|
|
||||||
<head>
|
|
||||||
<title>${title}</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div class="container">
|
|
||||||
<div class="row">
|
|
||||||
<div class="span12">
|
|
||||||
<t:alerts/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="container">
|
|
||||||
<t:body />
|
|
||||||
<hr />
|
|
||||||
<footer>
|
|
||||||
<p>© Your Company</p>
|
|
||||||
</footer>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,13 +0,0 @@
|
|||||||
<configuration>
|
|
||||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
|
||||||
<layout class="ch.qos.logback.classic.PatternLayout">
|
|
||||||
<Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
|
|
||||||
</layout>
|
|
||||||
</appender>
|
|
||||||
|
|
||||||
<logger name="com.baeldung.tapestry" level="TRACE"/>
|
|
||||||
|
|
||||||
<root level="info">
|
|
||||||
<appender-ref ref="STDOUT"/>
|
|
||||||
</root>
|
|
||||||
</configuration>
|
|
@ -1,11 +0,0 @@
|
|||||||
<html t:type="layout" title="Not found apache-tapestry"
|
|
||||||
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_4.xsd"
|
|
||||||
xmlns:p="tapestry:parameter">
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="span12">
|
|
||||||
<h1>Requested page not found!</h1>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1 +0,0 @@
|
|||||||
introMsg=Welcome to the Apache Tapestry Tutorial
|
|
@ -1,14 +0,0 @@
|
|||||||
<html t:type="layout" title="apache-tapestry Home" xmlns:t="http://tapestry.apache.org/schema/tapestry_5_4.xsd">
|
|
||||||
|
|
||||||
<h1>Home! ${appName}</h1>
|
|
||||||
<h2>${message:introMsg}</h2>
|
|
||||||
<h3>${currentTime}</h3>
|
|
||||||
<p><t:eventlink event="callAjax" zone="ajaxZone" class="btn btn-default">Call Ajax</t:eventlink></p>
|
|
||||||
<t:zone t:id="ajaxZone" class="span4"></t:zone>
|
|
||||||
<t:block t:id="ajaxBlock">
|
|
||||||
<hr/>
|
|
||||||
<h2>Rendered through Ajax</h2>
|
|
||||||
<p>The current time is: <strong>${currentTime}</strong></p>
|
|
||||||
</t:block>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1 +0,0 @@
|
|||||||
greeting=Welcome to Tapestry 5! We hope that this project template will get you going in style.
|
|
@ -1,46 +0,0 @@
|
|||||||
<html t:type="layout" title="apache-tapestry Index"
|
|
||||||
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_4.xsd"
|
|
||||||
>
|
|
||||||
|
|
||||||
<!-- Most of the page content, including <head>, <body>, etc. tags, comes from Layout.tml -->
|
|
||||||
|
|
||||||
<!-- Main hero unit for a primary marketing message or call to action -->
|
|
||||||
<div class="hero-unit">
|
|
||||||
<p>
|
|
||||||
<img src="${asset:context:images/tapestry.png}"
|
|
||||||
alt="${message:greeting}" title="${message:greeting}"/>
|
|
||||||
</p>
|
|
||||||
<h3>${message:greeting}</h3>
|
|
||||||
<p>The current time is: <strong>${currentTime}</strong></p>
|
|
||||||
<p>
|
|
||||||
This is a template for a simple marketing or informational website. It includes a large callout called
|
|
||||||
the hero unit and three supporting pieces of content. Use it as a starting point to create something
|
|
||||||
more unique.
|
|
||||||
</p>
|
|
||||||
<p><t:actionlink t:id="learnmore" class="btn btn-primary btn-large">Learn more »</t:actionlink></p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Example row of columns -->
|
|
||||||
<div class="row">
|
|
||||||
<div class="span4">
|
|
||||||
<h2>Normal link</h2>
|
|
||||||
<p>Clink the bottom link and the page refresh with event <code>complete</code></p>
|
|
||||||
<p><t:eventlink event="complete" class="btn btn-default">Complete»</t:eventlink></p>
|
|
||||||
</div>
|
|
||||||
<t:zone t:id="middlezone" class="span4">
|
|
||||||
|
|
||||||
</t:zone>
|
|
||||||
<div class="span4">
|
|
||||||
<h2>Ajax link</h2>
|
|
||||||
<p>Click the bottom link to update just the middle column with Ajax call with event <code>ajax</code></p>
|
|
||||||
<p><t:eventlink event="ajax" zone="middlezone" class="btn btn-default">Ajax»</t:eventlink></p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<t:block t:id="block">
|
|
||||||
<h2>Ajax updated</h2>
|
|
||||||
<p>I'v been updated through AJAX call</p>
|
|
||||||
<p>The current time is: <strong>${currentTime}</strong></p>
|
|
||||||
</t:block>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,16 +0,0 @@
|
|||||||
<html t:type="layout" title="apache-tapestry com.example"
|
|
||||||
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd"
|
|
||||||
xmlns:p="tapestry:parameter">
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="span4 offset3">
|
|
||||||
<t:form t:id="login">
|
|
||||||
<h2>Please sign in</h2>
|
|
||||||
<t:textfield t:id="email" class="input-block-level" placeholder="Email address"/>
|
|
||||||
<t:passwordfield t:id="password" class="input-block-level" placeholder="Password"/>
|
|
||||||
<t:submit class="btn btn-large btn-primary" value="Sign in"/>
|
|
||||||
</t:form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,44 +0,0 @@
|
|||||||
# Default to info level output; this is very handy if you eventually use Hibernate as well.
|
|
||||||
log4j.rootCategory=info, A1
|
|
||||||
|
|
||||||
# A1 is set to be a ConsoleAppender.
|
|
||||||
log4j.appender.A1=org.apache.log4j.ConsoleAppender
|
|
||||||
|
|
||||||
# A1 uses PatternLayout.
|
|
||||||
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
|
|
||||||
log4j.appender.A1.layout.ConversionPattern=[%p] %c{2} %m%n
|
|
||||||
|
|
||||||
# Service category names are the name of the defining module class
|
|
||||||
# and then the service id.
|
|
||||||
log4j.category.com.baeldung.tapestry.services.AppModule.TimingFilter=info
|
|
||||||
|
|
||||||
# Outputs a list of pages, components and mixins at startup.
|
|
||||||
log4j.category.org.apache.tapestry5.modules.TapestryModule.ComponentClassResolver=info
|
|
||||||
|
|
||||||
# Outputs startup statistics; elapsed time to setup and initialize the registry, a list of
|
|
||||||
# available services, and a launch banner that includes the Tapestry version number.
|
|
||||||
log4j.category.org.apache.tapestry5.TapestryFilter=info
|
|
||||||
|
|
||||||
|
|
||||||
# Turning on debug mode for a page's or component's transformer logger
|
|
||||||
# will show all of the code changes that occur when the
|
|
||||||
# class is loaded.
|
|
||||||
|
|
||||||
# log4j.category.tapestry.transformer.com.baeldung.tapestry.pages.Index=debug
|
|
||||||
|
|
||||||
# Turning on debug mode for a component's events logger will show all the events triggered on the
|
|
||||||
# component, and which component methods are invoked as a result.
|
|
||||||
|
|
||||||
# log4j.category.tapestry.events.com.baeldung.tapestry.pages.Index=debug
|
|
||||||
|
|
||||||
# Turning on trace mode for a page's render logger provides extended information about every step
|
|
||||||
# in rendering (this is not generally helpful). Turning on debug mode will add a one-line
|
|
||||||
# summary that includes the elapsed render time, which can be useful in tracking down
|
|
||||||
# performance issues.
|
|
||||||
|
|
||||||
# log4j.category.tapestry.render.com.baeldung.tapestry.pages.Index=debug
|
|
||||||
|
|
||||||
# Turn on some verbose debugging about everything in the application. This is nice initially,
|
|
||||||
# while getting everything set up. You'll probably want to remove this once you are
|
|
||||||
# up and running, replacing it with more selective debugging output.
|
|
||||||
log4j.category.com.baeldung.tapestry=debug
|
|
@ -1,4 +0,0 @@
|
|||||||
# This is where global application properties go.
|
|
||||||
# You can also have individual message catalogs for each page and each
|
|
||||||
# component that override these defaults.
|
|
||||||
# The name of this file is based on the <filter-name> element in web.
|
|
@ -1,54 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
|
|
||||||
version="2.4">
|
|
||||||
|
|
||||||
<display-name>apache-tapestry Tapestry 5 Application</display-name>
|
|
||||||
<context-param>
|
|
||||||
<!--
|
|
||||||
The only significant configuration for Tapestry 5, this informs Tapestry
|
|
||||||
of where to look for pages, components and mixins.
|
|
||||||
-->
|
|
||||||
<param-name>tapestry.app-package</param-name>
|
|
||||||
<param-value>com.baeldung.tapestry</param-value>
|
|
||||||
</context-param>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Specify some additional Modules for two different execution
|
|
||||||
modes: development and qa.
|
|
||||||
Remember that the default execution mode is production
|
|
||||||
-->
|
|
||||||
<context-param>
|
|
||||||
<param-name>tapestry.development-modules</param-name>
|
|
||||||
<param-value>
|
|
||||||
com.baeldung.tapestry.services.DevelopmentModule
|
|
||||||
</param-value>
|
|
||||||
</context-param>
|
|
||||||
<context-param>
|
|
||||||
<param-name>tapestry.qa-modules</param-name>
|
|
||||||
<param-value>
|
|
||||||
com.baeldung.tapestry.services.QaModule
|
|
||||||
</param-value>
|
|
||||||
</context-param>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Filter configuration -->
|
|
||||||
<filter>
|
|
||||||
<filter-name>app</filter-name>
|
|
||||||
<filter-class>org.apache.tapestry5.TapestryFilter</filter-class>
|
|
||||||
</filter>
|
|
||||||
|
|
||||||
<filter-mapping>
|
|
||||||
<filter-name>app</filter-name>
|
|
||||||
<url-pattern>/*</url-pattern>
|
|
||||||
<dispatcher>REQUEST</dispatcher>
|
|
||||||
<dispatcher>ERROR</dispatcher>
|
|
||||||
</filter-mapping>
|
|
||||||
|
|
||||||
<error-page>
|
|
||||||
<error-code>404</error-code>
|
|
||||||
<location>/error404</location>
|
|
||||||
</error-page>
|
|
||||||
|
|
||||||
</web-app>
|
|
Binary file not shown.
Before Width: | Height: | Size: 1.1 KiB |
Binary file not shown.
Before Width: | Height: | Size: 34 KiB |
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,116 +0,0 @@
|
|||||||
/* ========================================================================
|
|
||||||
* Bootstrap: button.js v3.3.4
|
|
||||||
* http://getbootstrap.com/javascript/#buttons
|
|
||||||
* ========================================================================
|
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
||||||
* ======================================================================== */
|
|
||||||
|
|
||||||
|
|
||||||
+function ($) {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
// BUTTON PUBLIC CLASS DEFINITION
|
|
||||||
// ==============================
|
|
||||||
|
|
||||||
var Button = function (element, options) {
|
|
||||||
this.$element = $(element)
|
|
||||||
this.options = $.extend({}, Button.DEFAULTS, options)
|
|
||||||
this.isLoading = false
|
|
||||||
}
|
|
||||||
|
|
||||||
Button.VERSION = '3.3.4'
|
|
||||||
|
|
||||||
Button.DEFAULTS = {
|
|
||||||
loadingText: 'loading...'
|
|
||||||
}
|
|
||||||
|
|
||||||
Button.prototype.setState = function (state) {
|
|
||||||
var d = 'disabled'
|
|
||||||
var $el = this.$element
|
|
||||||
var val = $el.is('input') ? 'val' : 'html'
|
|
||||||
var data = $el.data()
|
|
||||||
|
|
||||||
state = state + 'Text'
|
|
||||||
|
|
||||||
if (data.resetText == null) $el.data('resetText', $el[val]())
|
|
||||||
|
|
||||||
// push to event loop to allow forms to submit
|
|
||||||
setTimeout($.proxy(function () {
|
|
||||||
$el[val](data[state] == null ? this.options[state] : data[state])
|
|
||||||
|
|
||||||
if (state == 'loadingText') {
|
|
||||||
this.isLoading = true
|
|
||||||
$el.addClass(d).attr(d, d)
|
|
||||||
} else if (this.isLoading) {
|
|
||||||
this.isLoading = false
|
|
||||||
$el.removeClass(d).removeAttr(d)
|
|
||||||
}
|
|
||||||
}, this), 0)
|
|
||||||
}
|
|
||||||
|
|
||||||
Button.prototype.toggle = function () {
|
|
||||||
var changed = true
|
|
||||||
var $parent = this.$element.closest('[data-toggle="buttons"]')
|
|
||||||
|
|
||||||
if ($parent.length) {
|
|
||||||
var $input = this.$element.find('input')
|
|
||||||
if ($input.prop('type') == 'radio') {
|
|
||||||
if ($input.prop('checked') && this.$element.hasClass('active')) changed = false
|
|
||||||
else $parent.find('.active').removeClass('active')
|
|
||||||
}
|
|
||||||
if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change')
|
|
||||||
} else {
|
|
||||||
this.$element.attr('aria-pressed', !this.$element.hasClass('active'))
|
|
||||||
}
|
|
||||||
|
|
||||||
if (changed) this.$element.toggleClass('active')
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// BUTTON PLUGIN DEFINITION
|
|
||||||
// ========================
|
|
||||||
|
|
||||||
function Plugin(option) {
|
|
||||||
return this.each(function () {
|
|
||||||
var $this = $(this)
|
|
||||||
var data = $this.data('bs.button')
|
|
||||||
var options = typeof option == 'object' && option
|
|
||||||
|
|
||||||
if (!data) $this.data('bs.button', (data = new Button(this, options)))
|
|
||||||
|
|
||||||
if (option == 'toggle') data.toggle()
|
|
||||||
else if (option) data.setState(option)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
var old = $.fn.button
|
|
||||||
|
|
||||||
$.fn.button = Plugin
|
|
||||||
$.fn.button.Constructor = Button
|
|
||||||
|
|
||||||
|
|
||||||
// BUTTON NO CONFLICT
|
|
||||||
// ==================
|
|
||||||
|
|
||||||
$.fn.button.noConflict = function () {
|
|
||||||
$.fn.button = old
|
|
||||||
return this
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// BUTTON DATA-API
|
|
||||||
// ===============
|
|
||||||
|
|
||||||
$(document)
|
|
||||||
.on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
|
|
||||||
var $btn = $(e.target)
|
|
||||||
if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
|
|
||||||
Plugin.call($btn, 'toggle')
|
|
||||||
e.preventDefault()
|
|
||||||
})
|
|
||||||
.on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
|
|
||||||
$(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
|
|
||||||
})
|
|
||||||
|
|
||||||
}(jQuery);
|
|
@ -1,9 +0,0 @@
|
|||||||
----
|
|
||||||
Module com.baeldung:apache-tapestry
|
|
||||||
----
|
|
||||||
|
|
||||||
com.baeldung:apache-tapestry Documentation
|
|
||||||
|
|
||||||
This is where you can start to document your module.
|
|
||||||
|
|
||||||
Create new files in the Maven APT format, and update the site.xml file to point to them.
|
|
@ -1,17 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
|
||||||
<project name="Generated site for apache-tapestry">
|
|
||||||
|
|
||||||
<publishDate format="dd MMM yyyy"/>
|
|
||||||
|
|
||||||
<version/>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<menu name="apache-tapestry Project">
|
|
||||||
<item name="About" href="index.html"/>
|
|
||||||
</menu>
|
|
||||||
|
|
||||||
<menu ref="reports"/>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</project>
|
|
@ -1,8 +0,0 @@
|
|||||||
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
|
|
||||||
<suite name="apache-tapestry Application Test Suite" annotations="1.5">
|
|
||||||
<test name="Unit Tests">
|
|
||||||
<packages>
|
|
||||||
<package name="com.baeldung.tapestry"/>
|
|
||||||
</packages>
|
|
||||||
</test>
|
|
||||||
</suite>
|
|
@ -1,278 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
|
||||||
<web-app
|
|
||||||
xmlns="http://java.sun.com/xml/ns/j2ee"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
|
|
||||||
version="2.4">
|
|
||||||
|
|
||||||
<description>
|
|
||||||
Default web.xml file.
|
|
||||||
This file is applied to a Web application before it's own WEB_INF/web.xml file
|
|
||||||
</description>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ==================================================================== -->
|
|
||||||
<!-- Context params to control Session Cookies -->
|
|
||||||
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
||||||
<!-- UNCOMMENT TO ACTIVATE
|
|
||||||
<context-param>
|
|
||||||
<param-name>org.mortbay.jetty.servlet.SessionDomain</param-name>
|
|
||||||
<param-value>127.0.0.1</param-value>
|
|
||||||
</context-param>
|
|
||||||
|
|
||||||
<context-param>
|
|
||||||
<param-name>org.mortbay.jetty.servlet.SessionPath</param-name>
|
|
||||||
<param-value>/</param-value>
|
|
||||||
</context-param>
|
|
||||||
|
|
||||||
<context-param>
|
|
||||||
<param-name>org.mortbay.jetty.servlet.MaxAge</param-name>
|
|
||||||
<param-value>-1</param-value>
|
|
||||||
</context-param>
|
|
||||||
-->
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ==================================================================== -->
|
|
||||||
<!-- The default servlet. -->
|
|
||||||
<!-- This servlet, normally mapped to /, provides the handling for static -->
|
|
||||||
<!-- content, OPTIONS and TRACE methods for the context. -->
|
|
||||||
<!-- The following initParameters are supported: -->
|
|
||||||
<!-- -->
|
|
||||||
<!-- acceptRanges If true, range requests and responses are -->
|
|
||||||
<!-- supported -->
|
|
||||||
<!-- -->
|
|
||||||
<!-- dirAllowed If true, directory listings are returned if no -->
|
|
||||||
<!-- welcome file is found. Else 403 Forbidden. -->
|
|
||||||
<!-- -->
|
|
||||||
<!-- putAllowed If true, the PUT method is allowed -->
|
|
||||||
<!-- -->
|
|
||||||
<!-- delAllowed If true, the DELETE method is allowed -->
|
|
||||||
<!-- -->
|
|
||||||
<!-- redirectWelcome If true, redirect welcome file requests -->
|
|
||||||
<!-- else use request dispatcher forwards -->
|
|
||||||
<!-- -->
|
|
||||||
<!-- minGzipLength If set to a positive integer, then static content -->
|
|
||||||
<!-- larger than this will be served as gzip content -->
|
|
||||||
<!-- encoded if a matching resource is found ending -->
|
|
||||||
<!-- with ".gz" -->
|
|
||||||
<!-- -->
|
|
||||||
<!-- resoureBase Can be set to replace the context resource base -->
|
|
||||||
<!-- -->
|
|
||||||
<!-- relativeResourceBase -->
|
|
||||||
<!-- Set with a pathname relative to the base of the -->
|
|
||||||
<!-- servlet context root. Useful for only serving -->
|
|
||||||
<!-- static content from only specific subdirectories. -->
|
|
||||||
<!-- -->
|
|
||||||
<!-- The MOVE method is allowed if PUT and DELETE are allowed -->
|
|
||||||
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
||||||
<servlet>
|
|
||||||
<servlet-name>default</servlet-name>
|
|
||||||
<servlet-class>org.mortbay.jetty.servlet.Default</servlet-class>
|
|
||||||
<init-param>
|
|
||||||
<param-name>acceptRanges</param-name>
|
|
||||||
<param-value>true</param-value>
|
|
||||||
</init-param>
|
|
||||||
<init-param>
|
|
||||||
<param-name>dirAllowed</param-name>
|
|
||||||
<param-value>true</param-value>
|
|
||||||
</init-param>
|
|
||||||
<init-param>
|
|
||||||
<param-name>putAllowed</param-name>
|
|
||||||
<param-value>false</param-value>
|
|
||||||
</init-param>
|
|
||||||
<init-param>
|
|
||||||
<param-name>delAllowed</param-name>
|
|
||||||
<param-value>false</param-value>
|
|
||||||
</init-param>
|
|
||||||
<init-param>
|
|
||||||
<param-name>redirectWelcome</param-name>
|
|
||||||
<param-value>false</param-value>
|
|
||||||
</init-param>
|
|
||||||
<init-param>
|
|
||||||
<param-name>minGzipLength</param-name>
|
|
||||||
<param-value>8192</param-value>
|
|
||||||
</init-param>
|
|
||||||
<load-on-startup>0</load-on-startup>
|
|
||||||
</servlet>
|
|
||||||
|
|
||||||
|
|
||||||
<servlet-mapping>
|
|
||||||
<servlet-name>default</servlet-name>
|
|
||||||
<url-pattern>/</url-pattern>
|
|
||||||
</servlet-mapping>
|
|
||||||
|
|
||||||
<!-- ==================================================================== -->
|
|
||||||
<session-config>
|
|
||||||
<session-timeout>30</session-timeout>
|
|
||||||
</session-config>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ==================================================================== -->
|
|
||||||
<welcome-file-list>
|
|
||||||
<welcome-file>index.html</welcome-file>
|
|
||||||
<welcome-file>index.htm</welcome-file>
|
|
||||||
</welcome-file-list>
|
|
||||||
|
|
||||||
<!-- ==================================================================== -->
|
|
||||||
<locale-encoding-mapping-list>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>ar</locale>
|
|
||||||
<encoding>ISO-8859-6</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>be</locale>
|
|
||||||
<encoding>ISO-8859-5</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>bg</locale>
|
|
||||||
<encoding>ISO-8859-5</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>ca</locale>
|
|
||||||
<encoding>ISO-8859-1</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>cs</locale>
|
|
||||||
<encoding>ISO-8859-2</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>da</locale>
|
|
||||||
<encoding>ISO-8859-1</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>de</locale>
|
|
||||||
<encoding>ISO-8859-1</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>el</locale>
|
|
||||||
<encoding>ISO-8859-7</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>en</locale>
|
|
||||||
<encoding>ISO-8859-1</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>es</locale>
|
|
||||||
<encoding>ISO-8859-1</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>et</locale>
|
|
||||||
<encoding>ISO-8859-1</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>fi</locale>
|
|
||||||
<encoding>ISO-8859-1</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>fr</locale>
|
|
||||||
<encoding>ISO-8859-1</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>hr</locale>
|
|
||||||
<encoding>ISO-8859-2</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>hu</locale>
|
|
||||||
<encoding>ISO-8859-2</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>is</locale>
|
|
||||||
<encoding>ISO-8859-1</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>it</locale>
|
|
||||||
<encoding>ISO-8859-1</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>iw</locale>
|
|
||||||
<encoding>ISO-8859-8</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>ja</locale>
|
|
||||||
<encoding>Shift_JIS</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>ko</locale>
|
|
||||||
<encoding>EUC-KR</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>lt</locale>
|
|
||||||
<encoding>ISO-8859-2</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>lv</locale>
|
|
||||||
<encoding>ISO-8859-2</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>mk</locale>
|
|
||||||
<encoding>ISO-8859-5</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>nl</locale>
|
|
||||||
<encoding>ISO-8859-1</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>no</locale>
|
|
||||||
<encoding>ISO-8859-1</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>pl</locale>
|
|
||||||
<encoding>ISO-8859-2</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>pt</locale>
|
|
||||||
<encoding>ISO-8859-1</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>ro</locale>
|
|
||||||
<encoding>ISO-8859-2</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>ru</locale>
|
|
||||||
<encoding>ISO-8859-5</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>sh</locale>
|
|
||||||
<encoding>ISO-8859-5</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>sk</locale>
|
|
||||||
<encoding>ISO-8859-2</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>sl</locale>
|
|
||||||
<encoding>ISO-8859-2</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>sq</locale>
|
|
||||||
<encoding>ISO-8859-2</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>sr</locale>
|
|
||||||
<encoding>ISO-8859-5</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>sv</locale>
|
|
||||||
<encoding>ISO-8859-1</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>tr</locale>
|
|
||||||
<encoding>ISO-8859-9</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>uk</locale>
|
|
||||||
<encoding>ISO-8859-5</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>zh</locale>
|
|
||||||
<encoding>GB2312</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
<locale-encoding-mapping>
|
|
||||||
<locale>zh_TW</locale>
|
|
||||||
<encoding>Big5</encoding>
|
|
||||||
</locale-encoding-mapping>
|
|
||||||
</locale-encoding-mapping-list>
|
|
||||||
|
|
||||||
|
|
||||||
</web-app>
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user