<s:form>
我的Web应用程序的所有页面上都有一个。
<s:form action="search" method="post">
<s:textfield name="query" placeholder="Enter movie title..." cssClass="searchbox" />
<s:submit type="image" src="images/btn_search.gif" />
</s:form>
目前,它被重定向到index.jsp
时validate()
的方法SearchAction
类结果input
。
<action name="search" class="com.mypackage.action.SearchAction">
<result>/search-result.jsp</result>
<result name="input">/index.jsp</result>
</action>
SearchAction:
public class SearchAction extends ActionSupport implements RequestAware, Message {
private static final long serialVersionUID = 1L;
private Map<String, Object> request;
private String query;
@Override
public String execute() throws Exception {
// business logic
request.put("searchResults", searchResults);
return SUCCESS;
}
@Override
public void validate() {
if(getQuery().length() == 0) {
addFieldError("query", BLANK_SEARCH);
}
}
@Override
public void setRequest(Map<String, Object> request) {
this.request = request;
}
public String getQuery() {
return query;
}
public void setQuery(String query) {
this.query = query;
}
}
输出:
它可以工作,但是对于用户来说,index.jsp
每次参数无效(例如,空白)时都返回不自然。
我的目标是在出现“请输入...”消息时将用户保持在当前页面上。
问题:
login.jsp
从地址栏中获取信息?)<result name="input">/currentpage</result>
?如果我的问题有任何不清楚的地方,请不要犹豫。
您可以使用以下代码获取当前页面名称:
String actionName = ServletActionContext.getRequest().getHeader("Referer");
在Struts.xml中,使用动态结果,例如:
<result name="input" type="redirect">${url}</result>
在操作中,对URL使用getter方法。默认情况下,将url的值设置为“ index.jsp”。如果要更改它,请为url设置适当的值。像login.jsp等。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句