Struts2: No configuration found for the specified action… Form action defaulting to ‘action’ attribute’s literal value

在使用Struts2搭建Web应用的过程中,经常会在页面上用Struts2的tag来写form。比如:

<!-- login.jsp -->  
<s:form action="Login" method="post">  
    <s:textfield name="username" label="Username" />
    <s:password name="password" label="Password" />
    <s:submit align="center" value="Login" />
</s:form>  

而在struts.xml配置文件中则会将上面的login.jsp页面配置为一个action,即使该action并不需要专门的Java类来做处理:

<action name="LoginPage">  
    <result>/login.jsp</result>
</action>  

于是,可以通过访问LoginPage.action来打开login.jsp页面。

除了这种将jsp页面配置为action来进行访问的方式之外,也可以在浏览器中直接打开jsp文件;程序运行一切正常,但是在运行日志中却会出现警告信息:

No configuration found for the specified action: 'Login' in namespace: ''. Form action defaulting to 'action' attribute's literal value.  

每次刷新jsp页面都会使log文件中出现新的警告日志,因此推论该警告出现的原因,应该是在jsp页面渲染的时候Struts2标签无法找到相应信息所致 — 直接打开jsp页面的话,不会使用默认的拦截器栈。可惜,经过一番搜索之后,无法找到跟这个问题有关的详细描述。

因此,为了避免运行日志中出现不必要的警告条目,较好的做法就是遵循Struts2中的推荐方式:将jsp页面配置为一个action来进行访问,即使该action并不需要专门的Java类来做处理。

Chuan Shao

Read more posts by this author.

Shanghai

Subscribe to Chuan's blog

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!