요청/뷰 수준별로 선택한 로케일 기억 대신 JSF에서 세션 수준 지역화를 구현하는 방법
P粉360266095
P粉360266095 2023-08-22 21:30:42
0
2
440
<p><code>faces-config.xml</code>:</p> <pre class="brush:php;toolbar:false;"><application> <로케일-설정> <default-locale>ru</default-locale> <supported-locale>ua</supported-locale> </locale-config> </application></pre> <p>빈 액션 메소드에서 현재 뷰의 로케일을 다음과 같이 변경합니다.</p> <pre class="brush:php;toolbar:false;">FacesContext.getCurrentInstance().getViewRoot().setLocale(new Locale("ua"));</pre> <p>문제는 <code>ua</code> 로케일이 세션이 아닌 요청/뷰에만 적용된다는 것입니다. 동일한 세션의 다른 요청/뷰는 로케일을 기본 <code>ru</code> 값으로 재설정합니다. </p> <p>세션에 로캘을 어떻게 적용하나요? </p>
P粉360266095
P粉360266095

모든 응답(2)
P粉662802882

문제는 .properties 파일 이름과도 관련이 있는 것으로 확인됩니다. Java의 로케일 코드(소문자): en_gb 그러나 Netbeans에 의해 자동으로 생성된 로케일은 소문자_대문자입니다. 예: message_en_GB.properties 다음으로 변경하세요: message_en_gb.properties 그러면 제대로 작동할 것입니다. 모든 것을 시도했다면

P粉426906369

선택한 로케일을 세션 범위에 저장하고 두 위치에 설정해야 합니다. 한 번은 UIViewRoot#setLocale()立即在更改区域设置后(这将更改当前视图根的区域设置,从而在后续请求中得到反映;如果之后执行重定向,则此部分是不必要的),以及一次在<f:view>locale 속성을 통해(이렇게 하면 후속 요청/보기에서 로케일이 설정/보존됩니다).

다음은 LocaleBean 모양의 예입니다.

으아악

뷰가 어떻게 보여야 하는지에 대한 예는 다음과 같습니다.

으아악

이는 #{text}已在faces-config.xml의 구성이 다음과 같다고 가정합니다.

으아악

<html lang>은 JSF 기능에는 필수가 아니지만 검색 엔진 설명 페이지에는 필수입니다. 그렇지 않으면 중복된 콘텐츠로 표시될 수 있으며 이는 SEO에 좋지 않습니다.

참조:

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!