2016-05-13 5 views
0

Я новичок в Liferay, и я немного смущен тем, как это работает. Мне очень сложно понять его структуру (я обычно не делаю!).Liferay action не работает

Я просто пытаюсь сделать простой портлет для масштабирования с этой точки и иметь возможность программировать портлеты, даже если простым и архаичным способом (мне все равно, мне просто нужно это работать в несколько дней). Важным моментом для достижения этой цели является возможность использования действий.

Проверьте этот код. Я скачал этот пример с веб-сайта, но это не работает для меня (я использую Liferay 6.2): ​​

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %> 

User Name is : <b> ${userName}</b> 

<portlet:defineObjects /> 

<portlet:actionURL name="addName" var="addNameUrl"></portlet:actionURL> 
<br> 
<form action="${addNameUrl}" method="post"> 
<input type="text" name="userName"><br> 
<input type="submit"> 
</form> 

Это мой контроллер портлет:

public class CustomMVCPortlet extends MVCPortlet { 

    @ProcessAction(name="addName") 
    public void addName(ActionRequest actionRequest, 
      ActionResponse actionResponse) throws IOException,  PortletException, PortalException, SystemException{ 

     String userName = ParamUtil.get(actionRequest, "userName", StringPool.BLANK); 
     actionRequest.setAttribute("userName", userName); 
    } 

Это должно работать таким образом: вы напишите строку в поле ввода, нажмите кнопку отправки, и то, что вы написали, должно появиться в представлении как «Имя пользователя: whatYouWrote». Но я не вижу ничего такого:

Как-то, действия здесь не работают должным образом. Какое изменение я должен выполнить, чтобы заставить это работать? Может ли кто-нибудь сказать мне простым способом, как эти действия работают?

+0

Здравствуйте. Не могли бы вы отредактировать вопрос и добавить изображение результата ?. Есть ли стек в вашем журнале или вы даже пытаетесь отлаживать, если действие было обработано? – Jorge

+0

Что вы подразумеваете, заявив, что «не работает должным образом»? Это действие вообще не называется? КПП. Добавили ли вы ссылку на класс CustomMVCPortlet в файл portlet.xml? –

ответ

0

Попробуйте этот код, прежде чем попробовать это я надеюсь, что вы сделали со всей конфигурации в отношении базы данных и все -

Это ваша страница Jsp:

<% 
    PortletURL addNameURL = renderResponse.createActionURL(); 
    addNameURL.setParameter(
     ActionRequest.ACTION_NAME, "addName"); 
%> 
<form name="fm" action="<%= addNameURL.toString() %>" method="POST"> 

    <input name="userName" label="User Name"/> 

    <button type="submit" value="save"/> 
</form> 

Это мой контроллер портлет:

public class CustomMVCPortlet extends MVCPortlet { 

public void addName(ActionRequest actionRequest, 
     ActionResponse actionResponse) throws IOException, PortletException  { 

    String userName= ParamUtil.getString(actionRequest, "userName"); 
// 1. Instantiate an empty object of type (entityName)Impl 
    entityName xyz = new entityName)Impl; 
// 2. Generate a unique primary key to be set 
    long employeeId = 0l; 
    try { 
    employeeId = CounterLocalServiceUtil.increment(); 
    } catch (SystemException e) { 
    e.printStackTrace(); 
} 
// 3. Set the fields for this object 
    xyz .setEmployeeId (employeeId); 
    xyz .setUserName(userName); 
// 4. Call the Service Layer API to persist the object 
try { 
    xyz = (entityName)LocalServiceUtil.add(entityName)(xyz); 
} 
catch (SystemException e) { 
    e.printStackTrace(); 
} 
Смежные вопросы