Q:

Why JSF page keeps old data?

I have an simple create page, and save button. First time I run application everything is fine but after that it keeps values from previous creation. 
<ui:composition template="/template.xhtml">
    <ui:define name="title">
        <h:outputText value="#{bundle.CreateProjectsTitle}"></h:outputText>
    </ui:define>

    <ui:define name="body">
        <h:panelGroup id="messagePanel" layout="block">
            <h:messages errorStyle="color: red" infoStyle="color: green" layout="table"/>
        </h:panelGroup>

        <h:form>
            <h:panelGrid columns="2">
                <h:outputLabel value="#{bundle.CreateProjectsLabel_projectName}"
                               for="projectName"/>

                <h:inputText  id="projectName"
                              value="#{projectsController.selected.projectName}"
                              title="#{bundle.CreateProjectsTitle_projectName}"/>
            </h:panelGrid>
            <p:commandButton action="#{projectsController.create}"
                             value="#{bundle.CreateProjectsSaveLink}"
                             onclick="window.close()"/>
        </h:form>
    </ui:define>
</ui:composition>

A:

Since projectsController is session scoped, it is instantiated once and that instance is kept as long the session is alive. When you enter values in its fields, they stay there until you change them.
Your options are

Change the scope to @RequestScope, that way the bean will be initialized on each request
Reset the values you want in some action, possibly after the button's action is completed

