Fork me on GitHub
Edit on GitHub


The default configuration (struts-default.xml) configures the Dispatcher Result as the default result, which works well with JavaServer Pages. Any JSP 1.2+ container can work with Struts 2 JSP tags immediately.

Getting Started

Because JSP support occurs through the Dispatcher Result, which is the default result type, you don’t need to specify the type attribute when configuring struts.xml:

<action name="test" class="com.acme.TestAction">
    <result name="success">test-success.jsp</result>

Then in test-success.jsp:

<%@ taglib prefix="s" uri="/struts-tags" %>


Hello, <s:property value="name"/>


Where name is a property on your action. That’s it!

Servlet / JSP Scoped Objects

The following are ways to obtain Application scope attributes, Session scope attributes, Request scope attributes, Request parameters and framework Context scope parameters:

Application Scope Attribute

Assuming there’s an attribute with name myApplicationAttribute in the Application scope.

<s:property value="%{#application.myApplicationAttribute}" />

Session Scope Attribute

Assuming there’s an attribute with name mySessionAttribute in the Session scope.

<s:property value="%{#session.mySessionAttribute}" />

Request Scope Attribute

Assuming there’s an attribute with name myRequestAttribute in the Request scope.

<s:property value="%{#request.myRequestAttribute}" />

Request Parameter

Assuming there’s a request parameter myParameter (e.g. [http://host/myApp/myAction.action?myParameter=one]).

<s:property value="%{#parameters.myParameter}" />

Context Scope Parameter

Assuming there’s a parameter with the name myContextParam in our context.

<s:property value="%{#myContextParam}" />

Tag Support

See the JSP Tags documentation for information on how to use the generic Struts Tags provided by the framework.

Exposing the ValueStack

There are a couple of ways to obtain Access to ValueStack from JSPs.