在我的應用程序中有一個註冊表單,提交後,它將郵寄給管理員接受/拒絕註冊。沒有從查詢字符串中獲取價值
郵件發送時間一個唯一的密鑰是追加Accept button
。點擊這個按鈕後,將在控制器中觸發一個actionListener
,並且在那裏我想從查詢字符串中讀取唯一鍵值,但是我得到空值,儘管URL http://localhost:8080/BridgeFront/app/AproveReq.xhtml?activityId=LFGP13005
包含查詢字符串參數。我做錯了什麼?如果有人知道,請讓我知道。 我想在我的項目中說我使用spring框架的一件事。
我已經writen這個過濾:
<filter>
<filter-name>openSessionInView</filter-name>
<filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class>
</filter>
的AproveReq.xhtml
代碼如下:
<h:form>
<p:commandButton value="Aprove" action="#{aproveDeny.xyz}"/>
<p:commandButton value="Deny"/>
</h:form>
控制器低於:
@ManagedBean(name = "aproveDeny")
@RequestScoped
public class AproveDeny{
@ManagedProperty("#{param.activityId}")
private String activityId;
public void xyz(){
System.out.println("-------+++"+getActivityId());
}
public String getActivityId() {
return activityId;
}
public void setActivityId(String activityId) {
this.activityId = activityId;
}}
設置郵件身體(MimeMessage)這樣:
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
mimeMessageHelper.setTo("[email protected]");
StringBuilder text = new StringBuilder();
StringBuilder text = new StringBuilder();
text.append("<html>");
text.append("<body>");
text.append("<a href="+URL+"?activityId="+ActivityId+">Accept Or Deny request.."+"</a>");
text.append("</body>");
text.append("</html>");
mimeMessageHelper.setText(text.toString(), true);
感謝@oko的回覆,我不明白'@ManagedProperty(value =「#{param.activityId}」)'沒有這個,我嘗試了我的bean在requestScoped中的作用域,它不工作,'request.getQueryString ()'返回null。 – Diganta 2013-04-24 08:22:43
ManagedProperty是一個特殊的註釋,它定義了一個變量,它接受url參數並直接注入它。當你的管理員打開頁面時,這個activityId將被注入到關鍵變量中。而ManagedProperty僅適用於** requestScoped ** beans。 – oko 2013-04-24 08:34:44
自動參數'activityId'將被注入變量'key' ?? – Diganta 2013-04-24 08:42:07