도그고생을 하면서 고민과 고뇌와 검색을 때려보니..
하앍!! 안되면 세션이나 리퀘스트 객체의 attribute 다 출력해봐!!!!
라는 결론에 도달
<%@ page import="java.util.Enumeration" %>
<%
Enumeration enu = request.getAttributeNames();
while(enu.hasMoreElements())
{
String name = enu.nextElement().toString();
String val = request.getAttribute(name).toString();
out.println("<b>"+name+"</b>:"+val+"<BR>");
}
[링크 : http://iamafool.tistory.com/88] |
그래서 출력을 때려보니
javax 쪽에서 몇가지 나오는게 있는데
>>> http://localhost:8080/Struts2_board_reply/mboardlist.mu
javax.servlet.include.request_uri:/Struts2_board_reply/tiles/template/menu.jsp
javax.servlet.include.context_path:/Struts2_board_reply
javax.servlet.include.servlet_path:/tiles/template/menu.jsp
javax.servlet.forward.request_uri:/Struts2_board_reply/mboardlist.mu
javax.servlet.forward.context_path:/Struts2_board_reply
javax.servlet.forward.servlet_path:/mboardlist.mu
org.apache.tiles.servlet.context.ServletTilesRequestContext.CURRENT_CONTAINER_KEY:org.apache.tiles.impl.BasicTilesContainer@659c37d0
struts.valueStack:com.opensymphony.xwork2.util.OgnlValueStack@18dec065
org.apache.tiles.AttributeContext.STACK:[org.apache.tiles.BasicAttributeContext@3e79271d,
org.apache.tiles.BasicAttributeContext@7c92a617,
org.apache.tiles.BasicAttributeContext@e4ec647]
org.apache.tiles.servlet.context.ServletTilesRequestContext.FORCE_INCLUDE:true
http://localhost:8080/Struts2_board_reply/listAction.mu?boardId=user
javax.servlet.include.request_uri:/Struts2_board_reply/tiles/template/menu.jsp
javax.servlet.include.context_path:/Struts2_board_reply
javax.servlet.include.servlet_path:/tiles/template/menu.jsp
javax.servlet.forward.request_uri:/Struts2_board_reply/listAction.mu
javax.servlet.forward.context_path:/Struts2_board_reply
javax.servlet.forward.servlet_path:/listAction.mu
javax.servlet.forward.query_string:boardId=user
struts.request_uri:/Struts2_board_reply/listAction.mu
struts.valueStack:com.opensymphony.xwork2.util.OgnlValueStack@2a8c60ae
struts.view_uri:/board/boardList.jsp
게시판의 경우 action?boardId= 식으로 추가를 하기에
request_uri와 forward_servlet_path 두개를 합쳐서 적절히 잘라서 써서 해야한다.
<%
String cpage = request.getAttribute("javax.servlet.forward.servlet_path").toString();
if (request.getAttribute("javax.servlet.forward.query_string") != null) {
String cpque = request.getAttribute("javax.servlet.forward.query_string").toString();
cpage = cpage + "?" + cpque;
}
String[] sp = cpage.split("&");
cpage = sp[0];
%> |
일단 이렇게 하면 액션명부터 쿼리까지 빼내고 사용에 따라 다르겠지만
boardId가 가장 첫 인자라면 첫 인자 까지만 뽑아내서 사용이 가능해진다.
2014/05/26 - [프로그램 사용/struts2 / tiles] - 스트러츠2 사용시 브라우저 상의 현재 경로얻기