Programming/jsp2014. 5. 27. 10:56
도그고생을 하면서 고민과 고뇌와 검색을 때려보니..
하앍!! 안되면 세션이나 리퀘스트 객체의 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 사용시 브라우저 상의 현재 경로얻기 

'Programming > jsp' 카테고리의 다른 글

계층형 게시판 로직  (1) 2014.06.04
jsp get방식 utf-8인데 한글 안될경우  (0) 2014.05.27
ajax / innerHTML onload  (0) 2014.05.23
jsp:forward 와 request.sendRedirect()  (0) 2014.05.21
jsp tomcat 서버가 구동되지 않을 경우  (6) 2014.05.20
Posted by 구차니