Hi List,

I'm trying to inject via @Inject annotation a service (internal service RequestPageCache) into a component:

public class Menu {

    @Inject("RequestPageCache")
    RequestPageCache requestPageCache;

    public String getPageName() {

ComponentResources pageResources= resources.getPage ().getComponentResources();
        String pageClassName= pageResources.getCompleteId();
        Page page= requestPageCache.getByClassName(pageClassName);
        return page.getName();
    }
}

so...while rendering the page with the menu component

<div id="leftside">
    <div id="menu">
        <ul>
            <li>
                ${pageName}
            </li>
        </ul>
    </div>
</div>

a null pointer exception occures, because "requestPageCache" is null. What is getting wrong? Is RequestPageCache not injectable?

What I want: I just try to get the page of the component. Then the menu component should highlight by providing a special css-class the corresponding menu item of the <ul><li>-list for the active page. Therefore the menu component must know the current page that is rendered. In Tapestry 3 is just call the method getPage of the component. Now every component has no parent class...

While we are talking about injection: the docs are a little bit confusing:

@Inject
@Service("xxx") (which did not work with 5.0.3, because Service annotation does not exist)

or

@Inject("xxx")

or

@Inject( "service:xxx" ) (what kind of prefixes (service:) exists and what meaning have they?)

sometimes:
@Inject ("alias:request" )...is there somewhere a list with all objects that are able to be injected from tapestry-core?

thanks for any help

cheers

Michael


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to