我构建了一个portlet并添加了一个名为Idea的实体。有两个JSP,一个是视图,一个是编辑。 在视图中,只有一个按钮可以创建一个新的Idea和一个显示所有想法的表。单击按钮显示编辑jsp。
有一个包含两个字段集和输入内容的表单。
&#34;问题&#34;是我不能使用<aui:form ...
的东西因为它不能使用JQuery步骤(或者更好,我无法使它工作)。所以我使用普通标签,而且JQuery步骤提供的提交按钮只有<a href="#finish" ...>
。因此,不会使表单提交和数据在数据库中。
所以我试着在jquery步骤定义的javascript代码中这样做:
$(document).ready(function(){
var form = $("#wizard").show();
form.steps(
{
headerTag : "h3",
bodyTag : "fieldset",
transitionEffect : "slideLeft",
onFinishing: function (event, currentIndex) {
alert("Submitted!");
var data = jQuery("#wizard").serialize();
alert(data);
jQuery("#wizard").submit();
form.submit();[/b]
},
onFinished: function (event, currentIndex) {
//I tried also here..
},
});
});
但即使我明确地声明数据,它也不会把它放在数据库中。 所以我的想法是&#34;控制器&#34;调用&#34; addIdea&#34;的类从不调用函数。 我如何解决这个问题?
这也是我的表单部分的jsp代码:
<aui:form id="wizard" class="wizard" action="<%= editIdeaURL %>" method="POST" name="fm">
<h3>Idea</h3>
<aui:fieldset>
<aui:input name="redirect" type="hidden" value="<%= redirect %>" />
<aui:input name="ideaId" type="hidden" value='<%= idea == null ? "" : idea.getIdeaId() %>'/>
<aui:input name="ideaName" />
</aui:fieldset>
<h3>Idea desc</h3>
<aui:fieldset>
<aui:input name="ideaDescription" />
</aui:fieldset>
<aui:button-row>
<aui:button type="submit" />
<aui:button onClick="<%= viewIdeaURL %>" type="cancel" />
</aui:button-row>
</aui:form>
有没有办法去教授&#34; JQuery步骤<aui:***
标签?我在初始化表单的时候已经尝试过但是它不能工作。要使用aui标签使其工作会很棒。因为否则Liferay门户网站不会获得数据,或者只能通过黑客攻击获得数据?
€dit:我忘记了什么,当我使用javascript submit提交表单时,它会在db中创建一个新的dataentry但其中没有实际数据。
€dit2:
editIdeaURL在这里的表单上引用了一点:
<portlet:actionURL name='<%=idea == null ? "addIdea" : "updateIdea"%>'
var="editIdeaURL" windowState="normal" />
,addIdea代码如下所示:
首先在IdeaCreation类中:
public void addIdea(ActionRequest request, ActionResponse response)
throws Exception {
_updateIdea(request);
sendRedirect(request, response);
}
_updateIdea()
的位置:
private Idea _updateIdea(ActionRequest request)
throws PortalException, SystemException {
long ideaId = (ParamUtil.getLong(request, "ideaId"));
String ideaName = (ParamUtil.getString(request, "ideaName"));
String ideaDescription = (ParamUtil.getString(request, "ideaDescription"));
ServiceContext serviceContext = ServiceContextFactory.getInstance(
Idea.class.getName(), request);
Idea idea = null;
if (ideaId <= 0) {
idea = IdeaLocalServiceUtil.addIdea(
serviceContext.getUserId(),
serviceContext.getScopeGroupId(), ideaName, ideaDescription,
serviceContext);
} else {
idea = IdeaLocalServiceUtil.getIdea(ideaId);
idea = IdeaLocalServiceUtil.updateIdea(
serviceContext.getUserId(), ideaId, ideaName, ideaDescription,
serviceContext);
}
return idea;
}
最后使用IdeaLocalServiceImpl
:
public Idea addIdea(
long userId, long groupId, String ideaName, String ideaDescription,
ServiceContext serviceContext)
throws PortalException, SystemException {
User user = userPersistence.findByPrimaryKey(userId);
Date now = new Date();
long ideaId =
counterLocalService.increment(Idea.class.getName());
Idea idea = ideaPersistence.create(ideaId);
idea.setIdeaName(ideaName);
idea.setIdeaDescription(ideaDescription);
idea.setGroupId(groupId);
idea.setCompanyId(user.getCompanyId());
idea.setUserId(user.getUserId());
idea.setCreateDate(serviceContext.getCreateDate(now));
idea.setModifiedDate(serviceContext.getModifiedDate(now));
super.addIdea(idea);
return idea;
}
有什么想法吗?