I'm doing the following and it's just not working for me. I think I don't quite
understand how to use the @In annotation. Any suggestions? I apologize for the
long post, but I wanted to show the right amount of information. Thanks.
Here's the error...
javax.faces.el.EvaluationException: /calculator.xhtml @42,132
action="#{calculate.calculate}": javax.ejb.EJBException:
org.jboss.seam.RequiredException: In attribute requires value for component:
calculate.cb
Code looks like this...
@Name("calculate")
| @Stateful
| public class CaclulateAction implements Calculate {
|
| @In(create=true)
| private CalculatorBean cb;
|
| @DataModel
| private List<CalculatorBean> cbList;
|
| public String calculate() {
| double tmp = Math.pow(1. + cb.getGrowthRate() / 12., 12. * (cb.getEnd()
- cb.getStart()) + 1);
| double result = cb.getSaving() * 12. * (tmp - 1) / cb.getGrowthRate();
|
| cb.setResult(result);
| cbList.add(cb);
|
| return "/calculator.jsf";
| }
| }
simple bean to hold the data...
@Name("calculator")
| @Scope(ScopeType.CONVERSATION)
| public class CalculatorBean {
|
| getters/setters
| }
portion of calculator.xhtml file
<form id="calcform" name="calcform" method="post" jsfc="h:form">
| <table jsfc="h:panelGrid" width="406" border="1" cellpadding="2">
| <tr>
| <td width="140"><div align="right">Start Age </div></td>
| <td width="250"><input name="startage" type="text" id="startage"
size="40" jsfc="h:inputText" value="#{calculator.start}"/></td>
| </tr>
| <tr>
| <td><div align="right">End Age </div></td>
| <td><input name="endage" type="text" id="endage" size="40"
jsfc="h:inputText" value="#{calculator.end}" /></td>
| </tr>
| <tr>
| <td><div align="right">Growth Rate </div></td>
| <td><input name="growthrate" type="text" id="growthrate" size="40"
jsfc="h:inputText" value="#{calculator.growthRate}" /></td>
| </tr>
| <tr>
| <td><div align="right">Monthly Savings </div></td>
| <td><input name="savings" type="text" id="savings" size="40"
jsfc="h:inputText" value="#{calculator.saving}" /></td>
| </tr>
| <tr>
| <td><div align="right"></div></td>
| <td><table width="240" border="1">
| <tr>
| <td><div align="left">
| <input type="submit" jsfc="h:commandButton" id="submit"
action="#{calculate.calculate}" name="Submit" value="Submit" />
| </div></td>
| <td><div align="right">
| <input name="reset" jsfc="h:commandButton"
action="calculator.jsf" type="reset" id="reset" value="Reset" />
| </div></td>
| </tr>
| </table></td>
| </tr>
| </table>
| </form>
config files and descriptors...
| --- components.xml ---
| <components>
|
| <component name="org.jboss.seam.core.init">
| <property
name="jndiPattern">JsfCalculator/#{ejbName}/local</property>
| </component>
|
| <component class="org.jboss.seam.core.Ejb" installed="false" />
|
| </components>
|
| --- faces-config.xml ---
| <faces-config>
|
| <application>
| <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
| </application>
|
| <!-- Phase listener needed for all Seam applications -->
| <lifecycle>
| <phase-listener>
| org.jboss.seam.jsf.SeamPhaseListener
| </phase-listener>
| </lifecycle>
|
| </faces-config>
|
|
| --- web.xml ---
| <!-- Faces Servlet -->
| <servlet>
| <servlet-name>Faces Servlet</servlet-name>
| <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
| <load-on-startup>1</load-on-startup>
| </servlet>
|
| <!-- Faces Servlet Mappings -->
| <servlet-mapping>
| <servlet-name>Faces Servlet</servlet-name>
| <url-pattern>*.jsf</url-pattern>
| </servlet-mapping>
|
| <!-- Seam -->
|
| <listener>
| <listener-class>
| org.jboss.seam.servlet.SeamListener
| </listener-class>
| </listener>
|
| <!-- MyFaces -->
|
| <listener>
| <listener-class>
| org.apache.myfaces.webapp.StartupServletContextListener
| </listener-class>
| </listener>
|
| <context-param>
| <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
| <param-value>client</param-value>
| </context-param>
|
| <!-- Context Parameters -->
| <context-param>
| <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
| <param-value>.xhtml</param-value>
| </context-param>
|
| <context-param>
| <param-name>facelets.DEVELOPMENT</param-name>
| <param-value>true</param-value>
| </context-param>
|
| <context-param>
| <description>Set this to true for strict JSF RI
validation</description>
| <param-name>com.sun.faces.validateXml</param-name>
| <param-value>true</param-value>
| </context-param>
|
| <context-param>
| <description>Set this to true to have JSF RI verify all
appliation objects</description>
| <param-name>com.sun.faces.verifyObjects</param-name>
| <param-value>true</param-value>
| </context-param>
|
| <context-param>
| <param-name>javax.faces.application.CONFIG_FILES</param-name>
| <param-value>/WEB-INF/faces-config.xml</param-value>
| </context-param>
|
| <!-- Faces Servlet Mapping -->
| <welcome-file-list>
| <welcome-file>calculator.jsf</welcome-file>
| </welcome-file-list>
|
| </web-app>
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3955632#3955632
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3955632
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user