JSP
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>
</action>
Then in test-success.jsp:
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Hello</title>
</head>
<body>
Hello, <s:property value="name"/>
</body>
</html>
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.