我正在编写客户端web jsp页面,就像有一个表单(get)带有用户名搜索文本框和提交按钮
当用户提交它时,返回用户的json格式
但是当我提交时,网址看起来像
http://myhost.net:8080?user=pavan&method.execute=submit 如何在struts2中将此URL转换为低于1。
http://myhost.net:8080/user/pavan
struts2中是否有任何.htaccess文件
@Results( { @Result(name = "success", type = "redirectAction") })
public class UsersController implements ModelDriven<Object>,
ServletRequestAware {
private String username;
private HttpServletRequest request;
private String representation;
// GET /users/{username}
public HttpHeaders show() {
String acceptHeader = request.getHeader("Accept");
String type = "xml";
if (acceptHeader == null || acceptHeader.isEmpty() ||
acceptHeader.equals("application/xml")) {
representation = UserBO.getXML(username);
} else if (acceptHeader.equals("application/json")) {
representation = UserBO.getJSON(username);
type = "json";
}
return new DefaultHttpHeaders(type).disableCaching();
}
答案 0 :(得分:0)
您可以使用Parameters after the Action name
。
要在URL中使用参数,请在操作名称后确保已设置:
<constant name="struts.enable.SlashesInActionNames" value="true"/> <constant name="struts.mapper.alwaysSelectFullNamespace" value="false"/>
然后动作映射将如下所示:
<package name="edit" extends="struts-default" namespace="/edit"> <action name="/person/*" class="org.apache.struts.webapp.example.EditAction"> <param name="id">{1}</param> <result>/mainMenu.jsp</result> </action> </package>
当请求 / edit / person / 123 这样的网址时,系统会调用 EditAction ,其“ id ”字段将为设为 123 。