個人ブログにおける関連問題(二)


二.関連方法:
1.ナビゲーションなどを統一したファイルで管理する.

includeがJSPファイルの場合、文字化けしが発生する可能性があります.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>は符号化の統一を保証する.
2.struts 2関連jarパッケージを入れました.Struts 2はGAEと一定の衝突があるそうなので、struts-gaeを追加しました.JAr、これはネット上で見つけた両者を統合するためのパッケージです.
http://code.google.com/p/struts2-gae/downloads/listダウンロードできます.
 
3.JDOでソートして最新のarticleを得る:
 
 
 
 
Query query = PM.newQuery(Article.class);
query.setOrdering("time desc");
List<Article> articles = (List<Article>)query.execute();

Queryは、すべての格納されたオブジェクトをソートし、取得します.
 
 
 
 
 
Query query = PM.newQuery(Article.class);
query.setOrdering("time desc");
articles = (List<Article>)query.execute();

 4.
 
 
 
 
struts 2でactionがjspページパラメータを取得する
 
ActionContext context = ActionContext.getContext(); 
Map params = context.getParameters(); 
String username = (String) params.get("username");

 
 
 
 
 
5.Blogのidの設定方法、私は以前使ったことがなくて、感じはとても良いです:
  
Date date = new Date();
Long id = date.getTime()

 
 
 
 
6.カスタムfilterはfilterインタフェースを実現し、doFilterメソッドを実現する必要がある.また、Filterはチェーンであり、他のFilterを継続したい場合、コードは以下の通りである.
// Pass control on to the next filter
chain.doFilter(request, response);
7.servletでのページジャンプ:
req.setAttribute("article", article);
req.getRequestDispatcher("/index.jsp").forward(req,resp);
8.値伝達問題(サーブレットからJSPページへ値を伝達する操作):ページでを使用します.注意:s:ifで判断した対象はactionに含めなければなりません(つまりactionに対応するメンバー変数でなければなりません).サーブレットでrequestが伝達したパラメータだけでは無効です.
 
 
<s:if test="#article == null">
<jsp:forward page="/initIndex" />
</s:if>

 
 
 
 
 
9.Actionでセッションおよびrequestを取得する:
// Action   request  .
HttpServletRequest request = ServletActionContext.getRequest ();

// Action   Session  :
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
HttpSession session = request.getSession();

// Action   Session   :
ActionContext.getContext().getSession();

 
 
 
 
 
 
10.JSPページEL式が無効な問題、解決方法:
方法1.JSPページヘッダに<%@page isELIgnored="false"%>を付ける
方法2.WEB.xmlに追加:
 
 
 
 
11.トップページでjspを実現するには、forwardをActionにジャンプ
方法1:webで必要です.xmlでの構成:
<filter-mapping>  
   <filter-name>struts2</filter-name>  
   <url-pattern >/*</url-pattern>  
   <dispatcher>REQUEST</dispatcher>//1   
   <dispatcher>FORWARD</dispatcher> //2             
</filter-mapping> 

ページ:
<jsp:forward page="xxxx.action"></jsp:forward> 

 
 
 
 
方法2:Filterの使用
12.ページ取得オブジェクトの属性値
<jsp:getProperty name="article" property="time" />

 
注:s:propertyはjsp:getPropertyとは異なります.
s:propertyはActionに格納オブジェクト(サーブレットにおけるgetParameterに相当するオブジェクト)を取得し、jsp:getPropertyはrequest/session/applicationにおけるAttributionに格納オブジェクトを使用する.
13.オブジェクトが定数と比較された場合、定数を前面に出してもNullPointExceptionは発生しません
14.Interceptorの構成
注意:デフォルトではactionにはデフォルトのブロッキングがありますが、自分でブロッキングを構成するとデフォルトのブロッキングが機能しないため、デフォルトのブロッキングを手動で追加する必要があります.
15.invocation.invoke().これはActionInvocationのメソッドであり、ActionInvocationはActionスケジューラであるため、このメソッドは以下の2つの意味を備えている.
1.ブロッキングスタックに他のInterceptorがある場合はinvocation.invoke()は、スタック内の次のInterceptorの実行を呼び出します. 
2.ブロッキングスタックにActionしかない場合はinvocation.invoke()はアクション実行を呼び出します. 
だから、私たちは発見することができます.invoke()この方法は,実際にはブロックフレームワーク全体の実装コアである.
15 HTMLタグを出力:
<c:out value="${article.content}" escapeXml="false" />