2011-12-26 2 views
0

지금까지는 페이지의 내용을 업데이트해야 할 때 항상 소스 코드를 직접 업데이트하고 전체 응용 프로그램을 다시 배포해야했습니다. 지금은 응용 프로그램을 다시 배포하지 않고도 HTML 페이지의 내용을 동적으로 업데이트 할 수있는 기능을 구현하려고합니다.HTML 파일의 내용을 동적으로 편집하는 방법

PrimeFaces의 <p:editor> 구성 요소를 사용하여이 기능을 구현하려고했지만 작동하지 않습니다. 더 정확하게 말하면, 필자 함수는 필요한 페이지를 올바르게 업데이트 할 수 있습니다. 소스 코드 폴더로 이동하면 변경 사항을 실제로 볼 수 있습니다. 그러나 페이지에 대한 후속 요청은 여전히 ​​이전 내용을 렌더링합니다.

내가 잘못한 것을 나에게 보여줄 수 있다면 정말 고맙겠습니다. 같은 목표를 달성 할 수있는 다른 방법을 제시해 주시면 대단히 감사하겠습니다.

+0

하드 코드 된 writer writer = new FileWriter ("C : \\ Users \\ James \\ Documents \\ NetBeansProjects \\ MyProject \\"를 사용하는 대신 서버의 전체 경로를 가져 오는 방법을 찾고 있습니까? MyProject-war \\ web \\ "+ path); webapp의 경로를 얻는 방법을 찾고 싶습니까? – Daniel

+0

아래 답변에 따르면 "배포 영역"에 도달하는 방법이 필요하다고 생각합니다. 나 한테 어떻게 할 수 있니? –

답변

0

내 코드가 실제로 완벽하게 작동하고있었습니다. 위의 답변에서 user1068746, 나는 약간의 조사를했고 이것을 발견했다 article. 솔루션은 매우 간단합니다 : 하드 디스크의 디렉토리에 가상 디렉토리 매핑 생성. 결과적으로 하드 디스크에서 내 파일을 업데이트하면 이후의 요청에서 즉시 볼 수 있습니다.

+0

그러나 원래 WAR에 포함되지 않았기 때문에 단순히 WAR를 재배포 할 때마다 해당 값은 손실됩니다. – BalusC

+0

@BalusC 새 파일을 만들 때 Project 폴더 또는 Deploy 폴더 외부에있는 'C : \ webContent \'폴더에 넣습니다.그래서 정리하고 빌드 한 후 내 파일이 영향을받지 않는 이유입니다. –

+0

이 링크는 이제 죽은 것으로 보입니다. – Jamal

1

배치에서 작업 공간을 편집한다고 생각합니다. :)

코드가있는 곳이 2 곳 있습니다. 하나는 배포되고 다른 하나는 작업 공간에 배포됩니다.

처음에는 작업 공간을 배포하려는 것처럼 들리는군요. 이렇게하면 편집 할 때마다 배포를 직접 변경하게됩니다. 이를 위해 IDE에 새 프로젝트를 만들고 배포 폴더를 가리 키기 만하면됩니다.

C:\\Users\\James\\Documents\\NetBeansProjects\\MyProject\\MyProject-war\\web\\ 

점 배치 작업 공간을하지 :

는 그 내기. 배포가 작업 공간을 효과적으로 편집하고 있습니다.

FacesContext.getCurrentInstance().getExternalContext().getRealPath("/") 

을하고 WEB-INF

의 위치를 ​​원하는 경우 등

String fullpath = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/")+File.separator+"WEB-INF"; 

및 다음 사용 .. :

1

난 당신이 하나를 찾고 있습니다 생각

+0

나는 이것이 효과가 있다고 생각하지 않는다. 그 파일을 읽고 쓸 수 있도록 파일에 대한 견고한 경로가 필요합니다. 추천 링크는 브라우저가 페이지를 요청하는 링크 일뿐입니다. 나는 그 길에 어떤 것도 쓸 수 없다. File.separator + "someFolder"+ File.separator + "someFile.txt"+ File.separator + "someFolder"+ –

+0

이 파일을 사용해보십시오.); – Daniel

관련 문제