3

JSP の URL リクエストに基づいて特定のメッセージを表示したい。

リクエスト URL は次のようになります。

/app/cars/{id}

また

/app/people/{id}

messages.propertiesが持っている:

events.action.cars=My car {0} event
events.action.people=My person {1} event

最後に、JSP ページに次のコードを追加します。

<spring:message code="events.${element.cause}.${?????}"
                arguments="${element.param['0']},${element.param['1']}"/>

リクエスト URL を解析し、ID の前にある単語を取得するために使用できる式を見つけるのに助けが必要です。

4

4 に答える 4

0

これまでの私の解決策は、正規表現「. ?/jsp/(\w+)/ ..jsp 」に一致する RequestUtils クラスを用意し、group(1) を返すことです。

私のJspで私が得た:


<% request.setAttribute("entity", RequestUtils.getEntityURI(request)); %>
<spring:message code="events.${element.cause}.${entity}"
                arguments="${element.param['0']},${element.param['1']}"/>

もちろん、これはうまくいきました。それでも、JSP 内に Java コードを含めない方がよいでしょう。

于 2010-03-08T20:08:04.857 に答える
0
/app/(cars|people)/([^/]*)$

cars一致に応じてorpeopleを backreferenceに配置し、 backreference\1の最後のスラッシュの左右にあるものは何でも配置します\2

于 2010-03-07T05:38:05.460 に答える
0

私があなたを正しく理解していれば、次のようなことをする必要があると思います:

@RequestMapping(value="/owners/{ownerId}", method=RequestMethod.GET)
public String findOwner(@PathVariable String ownerId, Model model) {
  model.addAttribute("ownerId", ownerId);  
  return "myview"; 
}

ご覧のとおり、ここで ownerId は Spring MVC によって URL から読み取られます。その後、モデル マップに変数を配置するだけで、JSP で使用できるようになります。

于 2010-03-08T23:10:27.277 に答える