public class AppRoutes extends RoutesList {
protected void map() {
get("/", new Action() {
public void run() {
print("Hello World!");
}
});
}
}
public class AppRoutes extends RoutesList {
protected void map() {
get("/wildcard/*/:id", new Action() {
public void run() {
String id = params("id");
print("wildcard id " + id);
}
});
get("/alias/*/:id", "/wildcard/*/:id");
}
}
package com.ghosthack.turismo.example;
import com.ghosthack.turismo.action.*;
import com.ghosthack.turismo.routes.*;
public class AppRoutes extends RoutesList {
@Override
protected void map() {
get("/", new Action() {
@Override
public void run() {
print("Hello World!");
}
});
}
public static void main(String[] args) throws Exception{
JettyHelper.server(8080, "/*", AppRoutes.class.getName());
}
}
Using a webapp descriptor: web.xml
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>webapp-servlet</servlet-name>
<servlet-class>com.ghosthack.turismo.servlet.Servlet</servlet-class>
<init-param>
<param-name>routes</param-name>
<param-value>com.ghosthack.turismo.example.WebAppRoutes</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>webapp-servlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
Implementing routes
package com.ghosthack.turismo.example;
import com.ghosthack.turismo.action.*;
import com.ghosthack.turismo.routes.*;
public class WebAppRoutes extends RoutesList {
@Override
protected void map() {
get("/", new Action() {
@Override
public void run() {
print("Hello World!");
}
});
}
}
Using a jsp:
get("/render", new Action() {
public void run() {
req().setAttribute("message", "Hello Word!");
jsp("/jsp/render.jsp");
}
});
And the render.jsp contains:
<%=request.getAttribute("message")%>
Methods for GET, POST, PUT, DELETE, HEAD, OPTIONS, TRACE
post("/search", new Action() {
public void run() {
String query = req().getParameter("q");
print("Your search query was: " + query)
}
});
The default route in RoutesMap/RoutesList sends a 404. Rewire with another action:
route(new Action() {
public void run() {
try {
res().sendError(404, "Not Found");
} catch (IOException e) {
throw new ActionException(e);
}
}
});
post("/image", new Action() {
void run() {
MultipartRequest request = MultipartFilter.wrapAndParse(req());
String[] meta = request.getParameterValues("image");
byte[] bytes = (byte[]) request.getAttribute("image");
LOG.info("type: %s, name: %s, %d bytes", meta[0], meta[1], bytes.length);
}
});
<dependency>
<groupId>com.ghosthack</groupId>
<artifactId>turismo</artifactId>
<version>0.1.0</version>
</dependency>